2

我想从设置了背景属性的 html 文档中获取标签列表。

例如:

html="<div>
    <div></div>
    <table background=\"anything\">
    </table>
</div>"

soup = BeautifulSoup(html)
result = soup.findall(??)

在这种情况下,我希望表格标签出现在列表中。请注意,“任何东西”的值可以是……任何东西。理想情况下,我想根据正则表达式过滤背景属性的值。

我的问题是:我可以使用 Beautiful Soup 来获取根据背景属性的值是否设置过滤的列表吗?更好的是,我可以一步基于应用于属性的正则表达式进行过滤吗?

4

2 回答 2

1

根据文档

def has_background_attribute(tag):
    return tag.has_key('background')

soup.find_all(has_background_attribute)

也解决您的第二个问题的更好选择是(文档):

soup.find_all(background = re.compile("your_regex"))
于 2012-11-06T19:13:18.270 回答
1
import re
result = soup.findAll("", {"background": re.compile("")})

这也回答了您的第二个问题,因为您可以在re.compile语句中放置任何正则表达式。

于 2012-11-06T19:15:18.977 回答