如何使用requests_html按style="color:red"属性筛选对应文本内容
requests_html筛选属性匹配元素的实现方案
这个需求完全可以通过requests_html实现,它本身既支持JS渲染获取动态生成的页面内容,也支持通过CSS属性选择器精准筛选符合要求的元素,具体操作方法如下:
操作步骤
- 第一步:安装依赖(如果还未安装可执行以下命令)
pip install requests-html - 第二步:编写代码实现需求,核心逻辑是先渲染JS生成完整DOM结构,再通过属性模糊匹配筛选目标元素,最后提取对应文本
from requests_html import HTMLSession # 初始化会话实例 session = HTMLSession() # 替换为实际的目标页面URL url = "你的目标页面地址" resp = session.get(url) # 渲染页面执行JS生成动态内容,可根据页面加载速度调整sleep参数延长等待时间,避免内容未加载完成 resp.html.render(sleep=2) # 用CSS属性选择器筛选所有style属性包含color:red的a标签,*=代表模糊匹配属性中包含指定内容 target_elements = resp.html.find('a[style*="color:red"]') # 遍历提取元素文本即可得到需要的名称 result = [elem.text for elem in target_elements] print(result)
补充说明
- 如果你要筛选的元素本身是静态写在原始HTML里、不需要JS生成的,可以省略
render()步骤,直接调用find方法筛选即可 - 如果匹配结果有多余的无关元素,可以调整选择器缩小范围,比如结合父元素的类名筛选:
td.worker-col a[style*="color:red"],刚好适配你给出的HTML结构,筛选精准度更高
内容的提问来源于stack exchange,提问作者Dixy
相关产品推荐
相关产品推荐

