我正在尝试从包含多个表的网页中提取一些数据。所有表都有一个id =“name”属性。我用Python 3.4.1使用漂亮的汤4。我的代码在第一个表中删除就好了,但在最后一个表上它返回'None'而我无法弄清楚原因。
表格信息的html代码在下面,从我所看到的,它的格式与其他具有其他id名称的表格没有任何不同,例如id = Datagrid1
<TR>
<TD vAlign=top>
<TABLE id=Datagrid7
style="FONT-SIZE: smaller; FONT-FAMILY: Verdana; WIDTH: 675px; BORDER-COLLAPSE: collapse"
cellSpacing=0 rules=all align=left border=1>
<TBODY>
下面的python代码返回None,但如果我将id更改为另一个已知的id名称,它将起作用。
table = soup.find('table', id='DataGrid7')
print(table)
答案 0 :(得分:1)
您的程序中存在拼写错误,它应该很小'g'
from bs4 import BeautifulSoup
html="""<TR>
<TD vAlign=top>
<TABLE id=Datagrid7
style="FONT-SIZE: smaller; FONT-FAMILY: Verdana; WIDTH: 675px; BORDER-COLLAPSE: collapse"
cellSpacing=0 rules=all align=left border=1>
<TBODY>"""
soup=BeautifulSoup(html)
print soup.find('table',id='Datagrid7')
#output <table align="left" border="1" cellspacing="0" id="Datagrid7" rules="all" style="FONT-SIZE: smaller; FONT-FAMILY: Verdana; WIDTH: 675px; BORDER-COLLAPSE: collapse">
<tbody></tbody></table>
答案 1 :(得分:1)
代码中有一个拼写错误。
表的ID为Datagrid7
,而不是DataGrid7
:
table = soup.find('table', id='Datagrid7')
# ^