Python HTML解析表-美化组

Python HTML解析表-美化组,python,html-parsing,beautifulsoup,Python,Html Parsing,Beautifulsoup,我试图使用BeautifulSoup解析下面的第二个表。我很难识别第二个表和第一个表,因为表属性完全相同。如何访问表中的信息,如name=path?到目前为止,我尝试访问该表的方法是: table = soup.find('table', {'name':'PATHWAY'}) 虽然我知道有桌子,但我收到的答复是“无”。对我来说,这意味着我区分两者的方法不起作用。有什么建议吗 <table border="0" cellspacing="0" cellpadding="0" bgcolo

我试图使用BeautifulSoup解析下面的第二个表。我很难识别第二个表和第一个表,因为表属性完全相同。如何访问表中的信息,如name=path?到目前为止,我尝试访问该表的方法是:

table = soup.find('table', {'name':'PATHWAY'})
虽然我知道有桌子,但我收到的答复是“无”。对我来说,这意味着我区分两者的方法不起作用。有什么建议吗

<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>

反应型组织常见文献
凝结---

PATHWAYKEGG链接Metacyc链接
首先:

table = soup.find('table' {'name':'PATHWAY'}
没有合适的Python代码

这场比赛应该做什么

这只会匹配


您可以遍历每个表并在每个表内执行相关检查,也可以遍历树的每个节点,直到找到相关节点,然后沿着节点层次结构(通过跟随父节点)遍历,直到找到表元素。recursiveChildGenerator()可用于迭代所有节点(如在平面列表中)。

您可以使用
find
的函数形式:

soup.find(lambda tag: (tag.name=='table' and \
    (tag.find('a', attrs={'name': 'PATHWAY'}) is not None)))
>>soup.find(attrs={“name”:“PATHWAY”})
通路

Mu Mind正确:找到“a”,然后返回到父对象

soup.find(attrs={"name":"PATHWAY"}).findParent('table')

这就是python的方式……虽然只有一个xpath命令,但在axis上使用xpath操作更为复杂,只值得付出努力,因为它有一些特定的用途(xslt或javascript要求,例如)

代码可能不是合适的python,但可以通过BeautifulSoup使用。我将尝试遍历每个表,看看它是如何工作的。。。它缺少一个逗号,但您的版本丢失了一个括号,因此我不会太大声抱怨。这将获取元素,您可能希望使用
.findParents('table')[0]
获取表。假设页面上只有一个这样的标签。你的问题解决了吗?
soup.find(attrs={"name":"PATHWAY"}).findParent('table')