Beautifulsoup Python не может почистить данные с сайта - PullRequest
5 голосов
/ 11 апреля 2020

Я использовал Python Beautifulsoup для очистки данных. До сих пор beeen успешно соскоблил. Но застрял на следующем сайте.

Целевой сайт: LyricsHindiSong

Моя цель - очистить текст песни с упомянутого сайта. Но все время он дает пустой результат, или у объекта нетипа нет ошибки типа атрибута.

Бьются последние 15 дней и не могут понять, где была проблема и как ее исправить?

Ниже приведен код, который я использую.

import pymysql
import requests
from bs4 import Beautifulsoup

r=requests.get("https://www.lyricshindisong.in/2020/04/chnda-re-chnda-re-chhupe-rahana.html")
soup=Beautifulsoup(r.content,'html5lib')
pageTitle=soup.find('h1').text.strip()
targetContent=soup.find('div',{'style':'margin:25px; color:navy;font-size:18px;'})
print(pageTitle)
print(targetContent.text.strip())

Распечатывается ошибка. Нетипизированный объект не содержит текстовой ошибки. Если я проверю в окне проверки, элемент имеет оба присутствующих элемента. Невозможно понять, где проблема. По крайней мере, он должен был напечатать титульный лист.

Надеюсь, вы понимаете мое требование. Пожалуйста, ведите меня. Спасибо.

1 Ответ

4 голосов
/ 11 апреля 2020

Вы допустили ошибку в имени класса из bs4 lib и использовали метод find вместо find_all

Полный код:

import requests
from bs4 import BeautifulSoup


url = "https://www.lyricshindisong.in/2020/04/chnda-re-chnda-re-chhupe-rahana.html"
response = requests.get(url)

soup = BeautifulSoup(response.content,'html5lib')

title = soup.find('h1').text.strip()
content = soup.find_all('div',{'style':'margin:25px; color:navy;font-size:18px;'})

print(title)

for line in content:
    print(line.text.strip())

Результат:

python answer.py
Chnda Re Chnda Re Chhupe Rahana
चंदा रे, चंदा रे, छुपे रहनासोये मेरी मैना, लेके मेरी निंदिया रे
फूल चमेली धीरे महको, झोका ना लगा जाये नाजुक डाली कजरावाली सपने में मुस्काये लेके मेरी निंदिया रे
हाथ कहीं है, पाँव कहीं है, लागे प्यारी प्यारी ममता गाए, पवन झुलाये, झूले राजकुमारी लेके मेरी निंदिया रे  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...