我想在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>
我已经快速了解了BS's documentation。不清楚传递给findAll的params是否匹配我想要的行。
有没有人知道找到所有()的tp bass来匹配我想要的行?
答案 0 :(得分: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
那将从你的html中提取所有匹配的tr元素,你可以用它们进行进一步的操作,如更改文本,属性值,提取,进一步搜索......
强制性链接:
答案 1 :(得分:4)
像
这样的东西soup.findAll('tr',attrs = {'bgcolor': re.compile(R '#f01234 |#c01234'), 'valign':'top'})