python - 如何使用 CSS 选择器来选择动态更改的类名?
问题描述
我正在尝试像这样解析 HTML:
<div id="layers" class="r-1d2f490 r-u8s1d r-zchlnj r-ipm5af r-184en5c" style=""><div class="css-1dbjc4n r-aqfbo4 r-1p0dtai r-1d2f490 r-12vffkv r-1xcajam r-zchlnj">
在我的情况下,类名随着每个请求不断变化,我如何解析这个元素?
我试过了:
from bs4 import BeautifulSoup
container = soup.find_all('div', attrs={'class':'r-1d2f490 r-u8s1d r-zchlnj r-ipm5af r-184en5c"'})
print(container)
它有时会产生结果,但有时会返回一个空列表。如何使用带有正则表达式的 CSS 选择器来抓取类?
解决方案
由于您的班级名称发生了变化,请尝试定位id
(应该是唯一的)。
您可以将id作为关键字参数传递给.find()
. 在你的情况下使用id="layers"
:
soup = BeautifulSoup(html, "html.parser")
print(soup.find("div", id="layers"))
推荐阅读
- http - 为什么 HTTP/HTTPS 代理和 Socks 代理可以在一个端口上工作?
- reactjs - 无法使用 flatlist 获取 json 上的数据
- javascript - 反应 useState 不更新状态
- java - CXF - 从生成的客户端检索 SOAP 响应 XML
- java - Java servlet 非法字符(已解决)
- dynamic-programming - 使所有数组元素为零的最低成本
- .net - 无法在 .Net webform 项目中安装包“HighChart”
- spring-boot - Tomcat 10 的现有 Spring Boot 应用程序
- flutter - 从 API 返回的 Text 小部件内的 Null 值
- flutter - Flutter Chopper Post 图片