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

HTML特定标签与属性提取失效:股票代码抓取不符问题求助

问题原因

你遇到的核心问题是:requests只能获取服务器返回的初始静态HTML,而该网站的交易数据是通过JavaScript动态渲染加载的,初始HTML里并没有你在浏览器中看到的PYPL:US、ANET:US这些目标内容,所以BeautifulSoup提取的是页面中其他无关的静态内容(比如页面缓存或其他区域的旧数据),并非滚动加载的多页问题。

解决方案

方案1:用Selenium模拟浏览器渲染(直观易实现)

Selenium会模拟真实浏览器打开页面,等待JavaScript加载完所有内容后再提取数据,完全还原浏览器中的页面状态。

步骤:

  1. 安装依赖包:
pip install selenium webdriver-manager
  1. 示例代码:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
import time

# 初始化Chrome浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
target_url = "https://www.capitoltrades.com/trades?txType=buy&tradeSize=4&tradeSize=5&tradeSize=6&tradeSize=7&tradeSize=8&tradeSize=9&tradeSize=10&page=3"
driver.get(target_url)

# 等待页面完全加载(根据网络情况调整等待时长,比如3-5秒)
time.sleep(3)

# 获取加载完成后的页面源码
page_html = driver.page_source
soup = BeautifulSoup(page_html, 'html.parser')

# 提取目标股票代码
ticker_elements = soup.find_all("span", class_="q-field issuer-ticker")
for elem in ticker_elements:
    print(elem.get_text().strip())

# 关闭浏览器
driver.quit()

方案2:直接调用网站API接口(高效稳定)

浏览器打开目标页面后按F12打开开发者工具,切换到「Network」标签,刷新页面后筛选「XHR/fetch」类型的请求,能找到网站实际用来加载数据的API接口(比如类似https://api.capitoltrades.com/v1/trades的地址),直接请求API可以绕过JS渲染,更快更稳定地获取数据。

示例代码(需根据实际API参数调整):

import requests

api_url = "https://api.capitoltrades.com/v1/trades"
# 构造请求参数,对应原URL的筛选条件
request_params = {
    "txType": "buy",
    "tradeSize": [4,5,6,7,8,9,10],
    "page": 3,
    "limit": 20  # 每页返回的数据条数,可根据实际情况修改
}

# 添加请求头模拟浏览器,避免被反爬拦截
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"
}

response = requests.get(api_url, params=request_params, headers=headers)
trade_data = response.json()

# 提取股票代码
for trade in trade_data.get("data", []):
    ticker_symbol = trade.get("ticker")
    if ticker_symbol:
        print(f"{ticker_symbol}:US")

注意事项:

  • API接口的地址和参数可能会随网站更新变化,需要自己通过开发者工具确认最新信息;
  • 部分网站会有反爬机制,需控制请求频率,避免频繁请求导致IP被封禁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 12:12:42