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

标签 python-3.x python-2.7 parsing web-scraping beautifulsoup

如果类名在列表中具有指定值的样式属性,我必须选择所有具有 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/

相关文章:

python - 如何删除或清除python中的打印文本

linux - Python3 mlpy 安装错误 - ‘Py_InitModule3’ 未在此范围内声明

python - 强制转换为 Unicode : need string or buffer, 找到标记

java - 使用 Stanford CoreNLP 进行惰性解析以仅获取特定句子的情绪

algorithm - 如何给表达式加括号?

java - 如何加快将文件解析为 HashMap 的速度

python - __sizeof__ 没有被 sys.getsizeof 调用

python - 将键盘键绑定(bind)到函数 - Python KeyListener

python-2.7 - 适用于 Windows 的 Dbus-Python

python - 获取 Numpy 数组中满足多个条件的行