美丽的汤问题

sky*_*gle 1 python beautifulsoup html-parsing

我想在HTML文档中获取特定的行

这些行具有以下属性集:bgcolor和vallign

这是HTML表格的片段:

<table>
   <tbody>
      <tr bgcolor="#f01234" valign="top">
        <!--- td's follow ... -->
      </tr>
      <tr bgcolor="#c01234" valign="top">
        <!--- td's follow ... -->
      </tr>
   </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

我已经快速浏览了BS的文档.不清楚什么参数传递给findAll来匹配我想要的行.

有谁知道什么tp低音findAll()匹配我想要的行?

nos*_*klo 5

不要使用正则表达式来解析html.使用html解析器

import lxml.html
doc = lxml.html.fromstring(your_html)
result = doc.xpath("//tr[(@bgcolor='#f01234' or @bgcolor='#c01234') "
    "and @valign='top']")
print result
Run Code Online (Sandbox Code Playgroud)

这将从你的html中提取所有匹配的tr元素,你可以用它们进行进一步的操作,如更改文本,属性值,提取,进一步搜索......

强制性链接:

除了XHTML自包含标记之外,RegEx匹配开放标记