我正在尝试使用BeautifulSoup解析下面看到的第二个表。我在识别第二个表和第一个表时遇到了麻烦,因为这两个表的属性完全相同。如何访问表中的信息,如name =name?到目前为止,我尝试访问该表的方法是:
table = soup.find('table', {'name':'PATHWAY'})我收到的响应是"None“,尽管我知道表是存在的。对我来说,这意味着我区分这两者的方法不起作用。有什么建议吗?
<table border="0" cellspacing="0" cellpadding="0" bgcolor="#DCDCDC">
<tr><td>
<table border="0" cellspacing="1" cellpadding="3">
<tr>
<td class=ue><a name="REACTION TYPE">REACTION TYPE</td><td class=ue>ORGANISM</td><td class=ue>COMMENTARY</td><td class=ue>LITERATURE</td></tr>
<tr class=tr1>
<td class=g>condensation</td><td class=no>-</td><td class=no>-</td><td class=no>-</td></tr>
</table>
</td></tr></table>
<br>
<table border="0" cellspacing="0" cellpadding="0" bgcolor="#DCDCDC">
<tr><td>
<table border="0" cellspacing="1" cellpadding="3">
<tr>
<td class=ue><a name="PATHWAY">PATHWAY</td><td class=ue>KEGG Link</td><td class=ue>MetaCyc Link</td><td class=ue></td></tr>
<table>发布于 2011-06-29 04:33:58
Mu Mind是对的:找到"a“,然后遍历回到父级
soup.find(attrs={"name":"PATHWAY"}).findParent('table')也就是说,python是一个单独的xpath命令,但是在way....There上使用xpath操作更复杂,而且只值得努力,它有一些特定的用途(xslt或javascript要求,例如)
发布于 2011-06-29 01:18:43
>>> soup.find(attrs={"name":"PATHWAY"})
<a name="PATHWAY">PATHWAY</a>发布于 2011-06-29 01:12:48
首先:
table = soup.find('table' {'name':'PATHWAY'}没有合适的Python代码。
这应该匹配什么?
这将仅匹配。
您可以遍历每个表并在每个表内执行相关检查,也可以遍历树的每个单个节点,直到找到相关节点,然后沿节点层次结构向上遍历(通过跟随父节点),直到找到一个表元素。recursiveChildGenerator()可用于遍历所有节点(就像在平面列表中一样)。
https://stackoverflow.com/questions/6510345
复制相似问题