You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用requests-html爬取Capitol Trades提取股票代码返回None求助

解决方法

1. 修正CSS选择器

原代码里的span.q-field issuer-ticker写法错误,q-field和issuer-ticker是同一个<span>元素的两个类名,正确的CSS选择器应该用点连接多个类名,即span.q-field.issuer-ticker。

2. 优化渲染等待逻辑

部分动态内容加载耗时更长,可延长渲染等待时长,或指定等待目标元素加载完成。

3. 模拟浏览器请求头(可选)

部分网站会检测请求来源,添加标准浏览器的User-Agent能降低被拦截的概率。

修正后的代码

from requests_html import HTMLSession

url = 'https://www.capitoltrades.com/trades?txType=buy&tradeSize=4&tradeSize=5&tradeSize=6&tradeSize=7&tradeSize=8&tradeSize=9&tradeSize=10'

s = HTMLSession()
# 添加浏览器请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
}

r = s.get(url, headers=headers)
# 延长渲染等待时间,确保动态内容加载完成
r.html.render(sleep=3, wait=2)

# 使用正确的CSS选择器定位元素
products = r.html.find('span.q-field.issuer-ticker')

for product in products:
    print(product.text)

额外排查点

  • 若仍无法获取数据,打开浏览器开发者工具(F12),确认目标元素的类名是否有动态变化(部分网站会随机修改类名反爬)。
  • 若页面需要滚动加载更多内容,可在render时添加scrolldown参数,比如r.html.render(sleep=3, scrolldown=5),模拟滚动加载更多条目。

内容的提问来源于stack exchange,提问作者Joey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:42:01