Ой, я немного приведу код в 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', '///')