我目前正在尝试与Python 3.6中的请求和BeautifulSoup模块练习,并遇到了一个问题,我似乎无法在其他问题和答案中找到任何信息。美丽的汤找不到标签
看起来,在页面中的某个时刻,Beuatiful Soup停止识别标签和ID。我想从一个页面拉播放的播放数据是这样的:
http://www.pro-football-reference.com/boxscores/201609080den.htm
import requests, bs4
source_url = 'http://www.pro-football-reference.com/boxscores/201609080den.htm'
res = requests.get(source_url)
if '404' in res.url:
raise Exception('No data found for this link: '+source_url)
soup = bs4.BeautifulSoup(res.text,'html.parser')
#this works
all_pbp = soup.findAll('div', {'id' : 'all_pbp'})
print(len(all_pbp))
#this doesn't
table = soup.findAll('table', {'id' : 'pbp'})
print(len(table))
使用Chrome的检查,我可以看到,该表确实存在。我也试图在HTML的后半部分使用'div's'和'tr',它似乎不起作用。我试过标准的'html.parser'以及lxml和html5lib,但似乎没有任何工作。
我在这里做错了什么,或者在HTML或其格式中有什么东西妨碍BeautifulSoup正确地找到后面的标签?我遇到了这家公司运营的类似网页(hockey-reference.com,basketball-reference.com)的问题,但已能够在其他网站上正确使用这些工具。
如果它是HTML的东西,有没有更好的工具/库来帮助提取这些信息呢?
感谢你的帮助, BF
你想从该表中解析什么? 全部表?只有几列?几个细胞? –
你的陈述'table = soup.findAll('table',{'id':'pbp'})'不是_不working_,它只是_doesn't找不到''div元素与'id = pbp' –
@DmitriyFialkovskiy我试图最终创建一个特定游戏的游戏的Excel文件。一旦我可以将汤放在桌子上,我相信我可以通过tr和td标签循环来获取文本,并使用openpyxl将其转化为excel。我想最终我的问题是为什么不bs4在html中找到标签。看来bs4可以在HTML中的评论之前找到任何标签,但之后不会 - 评论是否会影响解析?是否有任何方法可以准确地从评论之后拉取标签? –