Python Beauty Soup-使用find_all从多个网页中提取文本
我试图从一些IMDb评级页面中提取“所有年龄段”的投票计数,但我编写的代码返回额外的HTML代码,我不确定如何仅提取数字。IMDb有一些数据可供下载,但不包括男性和女性选民。我已经通读并尝试了类似SO问题中列出的解决方案,例如,但使用.text或text=True不会返回任何结果 我正在使用的代码:Python Beauty Soup-使用find_all从多个网页中提取文本,python,beautifulsoup,Python,Beautifulsoup,我试图从一些IMDb评级页面中提取“所有年龄段”的投票计数,但我编写的代码返回额外的HTML代码,我不确定如何仅提取数字。IMDb有一些数据可供下载,但不包括男性和女性选民。我已经通读并尝试了类似SO问题中列出的解决方案,例如,但使用.text或text=True不会返回任何结果 我正在使用的代码: from bs4 import BeautifulSoup from requests import get from operator import itemgetter imdburls =
from bs4 import BeautifulSoup
from requests import get
from operator import itemgetter
imdburls = ['https://www.imdb.com/title/tt0029844/ratings','https://www.imdb.com/title/tt0030993/ratings']
Votes = []
for i in imdburls:
url = i
page = get(url)
soup = BeautifulSoup(page.content, 'lxml')
content = soup.find(id="main")
voteValues = content.find_all(class_="smallcell")
voteValues = itemgetter(0,5,10)(voteValues) # This returns the values from the 'All Ages' column
Votes.append(voteValues)
当我只需要实际的数字时,Votes会为第一个url返回此值:
[(<div class="smallcell">
<a href="/title/tt0029844/ratings?demo=imdb_users">
1,761
</a>
</div>,
<div class="smallcell">
<a href="/title/tt0029844/ratings?demo=males">
1,176
</a>
</div>,
<div class="smallcell">
<a href="/title/tt0029844/ratings?demo=females">
178
</a>
</div>),
非常感谢您的帮助。您需要s中元素的.text
从bs4导入BeautifulSoup
从请求导入获取
从运算符导入itemgetter
imdburls=['https://www.imdb.com/title/tt0029844/ratings','https://www.imdb.com/title/tt0030993/ratings']
票数=[]
对于imdburls中的i:
url=i
page=geturl
soup=beautifulsoupage.content,“lxml”
content=soup.findid=main
voteValues=content.selectdiv.smallcell>a
voteValues=itemgetter0,5,10voteValues这将返回“所有年龄”列中的值
投票。追加[n.text.strip for n in voteValues]
从pprint导入pprint
赞成票