36
如何使用BeautifulSoup搜索仅包含我搜索的属性的标签?如何查找仅具有某些属性的标签 - BeautifulSoup
例如,我想要查找所有<td valign="top">
标签。
下面的代码: raw_card_data = soup.fetch('td', {'valign':re.compile('top')})
得到所有我想要的数据,但也抓住任何<td>
标签具有属性valign:top
我也试过: raw_card_data = soup.findAll(re.compile('<td valign="top">'))
这没有返回值(可能因为坏的正则表达式)
我想知道是否有一种方法在BeautifulSoup说“查找<td>
标签的唯一属性是valign:top
“
UPDATE 例如,如果一个HTML文档包含以下<td>
标签:
<td valign="top">.....</td><br />
<td width="580" valign="top">.......</td><br />
<td>.....</td><br />
我想只有第一<td>
标签(<td width="580" valign="top">
)返回
根据我对julio的评论。alegria,这将找到所有具有valign =“top”属性的'
因此,你可以检查len(tag.attrs)。如果len(tag.attrs)> 1,忽略标签(我已编辑我的帖子) –
真棒,谢谢你! – Snaxib
只是通过它作为参数
findAll
:来源
2012-01-19 22:06:56 juliomalegria
如果有像这样的标签会怎么样:'
可以在
findAll
使用lambda
功能作为documentation解释。所以,在你的情况下,只有valign = "top"
使用搜索td
标签下面:来源
2014-04-22 06:33:29 Yogesh
最好的答案,因为它使用BS的全部功能 –
很好的答案,因为它给你带来非常优化的方式。 – CrazyGeek
要做到这一点,最简单的方法是使用新的CSS样式
select
方法:来源
2016-02-18 23:15:22
也是使用最新版本的那个。 –
,如果你想只用属性名称搜索任意值
来源
2017-07-28 05:37:22 Amr
你错过了'r'后面的括号。*“',导致不能编译。 –
相关问题