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

    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', '///')
    Ответ написан
    2 комментария