Beautifulsoup Python无法从网站上抓取数据

时间:2020-04-11 14:19:30

标签: python beautifulsoup

我一直在使用Python Beautifulsoup抓取数据。到目前为止,已经成功地刮掉了。但停留在以下网站。

目标站点:LyricsHindiSong

我的目标是从提到的网站上抓取歌词。但是,它始终给出空白结果,或者Nonetype对象始终没有属性种类错误。

过去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())

它打印错误nonetype对象没有文本错误。如果我在检查窗口中签入,则元素同时存在两个元素。无法理解问题出在哪里。至少它应该已经打印了标题页。

希望您了解我的要求。请指导我。谢谢。

1 个答案:

答案 0 :(得分:4)

您在<html> <head> <title> </title> </head> <body> <div id="sen">I am learning JavaScript by developing a simple project.</div> <br> <div id="dash"></div> <br> <div id="container"></div> <div id="val"></div> <script> var sen = document.getElementById("sen").innerHTML; var senTrim = sen.trim(); var senArr = senTrim.split(/\s+/); var dashElement = ""; for(i=0;i<senArr.length;i++) { //alert(senArr[i]); dashElement += "<div onclick='funDiv(this.id);' style='display: inline'" + "id = dashid" + i + ">" + '__ ' + '</div>'; } var dash = document.getElementById("dash"); dash.innerHTML = dashElement; //var dashID = document.getElementById("dashid0").innerHTML; //var dash1 = document.getElementById("val"); //dash1.innerHTML= dashID; var htmlElements = ""; for (var i = 0; i < senArr.length; i++) { htmlElements += "<button onclick='fun(this.id);' id = 'btn" + i + "'>" + senArr[i] + '</button>'; } var container = document.getElementById("container"); container.innerHTML = htmlElements; var ii = 0; function funDiv(clicked){ //alert(clicked); var inText = document.getElementById(clicked).innerHTML; document.getElementById(clicked).innerHTML = " __ " ; ii--; } function fun(clicked){ //alert(clicked); document.getElementById(clicked).style.display = "none"; document.getElementById("dashid" + ii).innerHTML = document.getElementById(clicked).innerHTML + " "; //document.getElementById(clicked).remove(); ii++; } </script> </script> </body> </html> 库中使用了错误的类名,并使用了bs4方法而不是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())

相关问题