我需要在页面上获取包含特定字符串“abc123123”的所有表格行。
字符串在TD内部,但如果内部任何地方都包含'abc123123',我需要整个TR。
我试过了:
userrows = s.findAll('tr', contents = re.compile('abc123123'))
我不确定内容是否是写属性。
我的HTML看起来像:
<tr>
<td>
</td>
<td><table>.... abc123123 </table><tr>
..
</tr>
<tr>
..
</tr>
..
..
答案 0 :(得分:4)
不,超出指定值(name, attrs, recursive, text, limit
)的额外关键字参数都会引用您正在搜索的标记的属性。
您无法同时搜索name
和 text
(如果您指定text
,则BS会忽略name
),因此您需要单独的电话,例如:
allrows = s.findAll('tr')
userrows = [t for t in allrows if t.findAll(text=re.compile('abc123123'))]
这里我使用的是列表推导,因为我假设你需要一个相关标签对象的列表,正如findAll
本身给你的那样。