我一直在使用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对象没有文本错误。如果我在检查窗口中签入,则元素同时存在两个元素。无法理解问题出在哪里。至少它应该已经打印了标题页。
希望您了解我的要求。请指导我。谢谢。
答案 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())