我试着用BeautifulSoup抓取"span“标签。这是我的代码..
import urllib
from bs4 import BeautifulSoup
url="someurl"
res=urllib.urlopen(url)
html=res.read()
soup=BeautifulSoup(html,"html.parser")
soup.findAll("span")但是当我这样做的时候,对于一些特定的网页。它没有列出所有的跨度。它只显示有限的否。跨度。但当我这么做的时候
soup.prettify()它包含所有的跨度..可能的原因是什么?我是不是错过了什么?还有一些我发现的答案是使用"htmlunit“这样的无头浏览器。但我不确定它们到底是什么?我可以将它们集成到我的django项目中吗?
soup.prettify给了https://drive.google.com/file/d/0BxhTzDujWhPVTzdIS2VWd1pZcHM/view?usp=sharing
跨度的期望输出(“soup.findAll”)
list of all the spans输出im获取
[<span class="ssc-ftpl ssc_ga_tag" data-gaa="Opened" data-gac="Footer" data-gal="Responsible Gambling" tabindex="0"> Responsible Gambling</span>, <span class="ssc-ftpl ssc_ga_tag" data-gaa="Opened" data-gac="Footer" data-gal="About Betfair" tabindex="0"> About Betfair</span>, <span class="ssc-ftpl ssc-ftls " tabindex="0">English - UK</span>, <span class="ssc-ftpl" tabindex="0">\xa9 \xae</span>]发布于 2015-12-23 07:10:54
终于找到了解决方案..问题出在默认的"html.parser",它不能处理。使用"html5lib“进行解析。并得到想要的结果。
soup=BeautifulSoup(html,"html5lib")
soup.findAll("span")html5lib解析器完全按照浏览器的方式解析页面。
发布于 2015-12-20 23:22:30
也许你正在尝试抓取一个不同的页面,但我在抓取那个站点时没有问题。下面是我的代码:
url='https://www.betfair.com/sport/football'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html)
test = soup.find_all('span')
for span in test:
print(span)这产生了一个很大的跨度列表,包括线/分数,这是我认为您会感兴趣的:
<span class="ssc-lkh"></span>
<span>Join Now</span>
<span class="new flag-en"></span>
<span class="new flag-en"></span>
<span class="sportIcon-6423"></span>
<span class="sportName">American Football</span>
<span class="sportIcon-3988"></span>
<span class="sportName">Athletics</span>
<span class="sportIcon-61420"></span>
.....响应下面的评论更新了
下面是一些修改后的代码,以显示我的代码确实可以拉入您需要的span。
url='https://www.betfair.com/sport/football'
html = urllib.request.urlopen(url).read()
soup = BeautifulSoup(html)
test = soup.find_all('span',attrs={"class":"away-team-name"})
for span in test:
print("away team" + span.text)产生:
away team
Marseille
away team
Lazio
away team
Academica
away team
Canada (W)
away team
Arnett Gardens FC
away team
UWI FC
....https://stackoverflow.com/questions/34371924
复制相似问题