如果类名在列表中或具有指定值的样式属性,我必须选择所有具有 class 属性的 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()
同时执行此操作?
最佳答案
尝试使用 CSS 选择器。要使用多个选择器,请用逗号分隔它们 ,
.
要使用 CSS 选择器作为类名,请使用:.<classname>
要使用样式的 CSS 选择器,您可以使用 [attribute="value"]
选择器。
所以在你的例子中:
[..]
# Using multiple CSS Selectors - separated by a comma.
print(soup.select('.class1, .class2, [style="text-align:left"]'))
关于python-3.x - 如何根据替代属性选择所有元素? [美汤],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65065485/