我正在尝试解析此网站中的数据: http://www.baseball-reference.com/boxes/CHN/CHN201606020.shtml
我想提取表格中的一些数据。但出于某种原因,我正在努力寻找它们。例如,我想要做的就是这个
from bs4 import BeautifulSoup
import requests
url = 'http://www.baseball-reference.com/boxes/CHN/CHN201606020.shtml'
soup = BeautifulSoup(requests.get(url).text)
soup.find('table', id='ChicagoCubsbatting')
尽管html中存在id,但最后一行没有返回任何内容。此外,即使页面中有许多表,len(soup.findAll('table'))
也会返回1。我尝试过使用' lxml' html.parser'和' html5lib'。一切都表现得一样。
发生了什么事?为什么这不起作用,我该怎么做才能提取表格呢?
答案 0 :(得分:1)
使用soup.find('div', class_='placeholder').next_sibling.next_sibling
获取评论文字,然后使用这些文字构建新的soup
。
In [35]: new_soup = BeautifulSoup(text, 'lxml')
In [36]: new_soup.table
Out[36]:
<table class="teams poptip" data-tip="San Francisco Giants at Atlanta Braves">
<tbody>
<tr class="winner">
<td><a href="/teams/SFG/2016.shtml">SFG</a></td>
<td class="right">6</td>
<td class="right gamelink">
<a href="/boxes/ATL/ATL201606020.shtml">Final</a>
</td>
</tr>
<tr class="loser">
<td><a href="/teams/ATL/2016.shtml">ATL</a></td>
<td class="right">0</td>
<td class="right">
</td>
</tr>
</tbody>
</table