Задать вопрос
@plaxa_code

Как записать данные функции в файл?

import requests as r 
from bs4 import BeautifulSoup as bs

url = 'https://en.lyrsense.com/lil_peep/nuts'
res = r.get(url)

if res.status_code !=  200  :
	print('ERROR')
skipNum = [7,12]

soup = bs(res.text,'html.parser')

num = range(1,24)



title = soup.find('h2' , class_ = 'hs').get_text()
print('$Название песни$ - ' , title )

def parse_eng():
	for i in num:
		if i  not in skipNum:
			words_eng = soup.find('span', class_ = 'highlightLine puzEng line'+str(i)).get_text()
			print(words_eng)
		
        	
def parse_ru():
	for i in num:
		if i  not in skipNum:

			words_ru = soup.find('span', class_ = 'highlightLine line'+str(i)).get_text()

			
			
			

			print(words_ru)
			



parse_ru()



'''chose = input('Выберите язык текста : ')
if chose == 'англ':
	parse_eng()
elif chose == "рус":
	parse_ru() '''

print('          ///Cохраненно в' ,title +  '.txt','///' )


Как записать данные с parse_ru в текстовый файл ?
  • Вопрос задан
  • 454 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
nullnull
@nullnull
Ой, я немного приведу код в if-name-main стиль, такую смесь функций и глобальных строк трудно читать :)))


К сожалению код не запускала, но попробуйте что-то в этом духе :)
import requests as r 
from bs4 import BeautifulSoup as bs

def parse_eng(soup, num, skipNum):
  result = []
  for i in num:
    if i  not in skipNum:
      words_eng = soup.find('span', class_ = 'highlightLine puzEng line'+str(i)).get_text()
      # print(words_eng)
      result.append(words_ru)
  return result # возвращаем список строк

   
        	
def parse_ru(soup, num, skipNum):
  result = []
  for i in num:
    if i  not in skipNum:
      words_ru = soup.find('span', class_ = 'highlightLine line'+str(i)).get_text()
      # print(words_ru)
      result.append(words_ru)
  return result


# та самая функция для сохранения результатов в файл
def saveFile(fileName, data):
  file = open(fileName, 'w', encoding='utf-8')
  file.writelines(data)
  # если запишет всё в одну строчку, без переносов, 
  # то можно через цикл с write(),
  file.close()


if __name__ == '__main__':
  url = 'https://en.lyrsense.com/lil_peep/nuts'
  res = r.get(url)

  if res.status_code !=  200  :
    print('ERROR')
    return # если подразумевается, что дальше не используете программу
    # можно заменить на else

  skipNum = [7,12]

  soup = bs(res.text, 'html.parser')

  num = range(1,24)

  title = soup.find('h2', class_ = 'hs').get_text()
  print('$Название песни$ - ', title )

  
  data = parse_ru(soup, num, skipNum)
  saveFile(title + '.txt', data)



  '''chose = input('Выберите язык текста : ')
  if chose == 'англ':
    data = parse_eng(soup, num, skipNum)
    saveFile(title + '.txt', data)
  elif chose == "рус":
    data = parse_ru(soup, num, skipNum)
    saveFile(title + '.txt', data) '''

  print('///Cохраненно в', title +  '.txt', '///')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы