Warm tip: This article is reproduced from serverfault.com, please click

python 3.x-如何根据替代属性选择所有元素?

(python 3.x - How to select all elements based on alternative attributes? [BeautifulSoup])

发布于 2020-11-29 21:40:34

如果类名称在列表中具有具有指定值的样式属性,则必须选择具有类属性的所有html标签

我想一步一步解决我的问题,我得到了:

selected_by_class = soup.find_all(class_=['basic_class', 'other_class'])
selected_by_style = soup.find_all(style='text-align:left')

如你所见,我分两步获取所有数据,但是序列丢失了,因为我做了两个独立的find_all()请求。

如何同时完成一个find_all()

Questioner
Quanti Monati
Viewed
11
MendelG 2020-11-30 07:59:24

尝试使用CSS选择器。要使用多个选择器,请用逗号分隔它们,

要将CSS选择器用作类名,请使用: .<classname>

要为样式使用CSS选择器,可以使用[attribute="value"]选择器。

因此,在你的示例中:

[..]

# Using multiple CSS Selectors - separated by a comma.
print(soup.select('.class1, .class2, [style="text-align:left"]'))