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

BeautifulSoup无法抓取完整HTML,如何获取finviz网页的股票代码?

问题原因

finviz站点针对无标识的爬虫请求做了反爬限制,你直接使用requests默认的请求头发起请求,会被站点拦截,无法拿到包含股票表格的正常页面内容。

修正方案

需要在发起请求时添加正常浏览器的User-Agent头,拿到正常响应后再通过CSS选择器定位表格内的股票代码即可,参考实现代码如下:

from bs4 import BeautifulSoup
import requests

def main():
    url = 'https://finviz.com/insidertrading.ashx?tc=1'
    # 添加正常浏览器的请求头,避免被反爬拦截
    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'
    }
    page = requests.get(url, headers=headers)
    soup = BeautifulSoup(page.text, 'html.parser')
    # 定位表格内的股票代码标签
    ticker_tags = soup.select('a.tab-link[href*="quote.ashx?t="]')
    # 提取4位代码,去重后输出
    tickers = list({tag.text.strip() for tag in ticker_tags if len(tag.text.strip()) == 4})
    print(tickers)

if __name__ == "__main__":
    main()
注意事项
  • 不要短时间内发起大量高频请求,避免站点封禁你的IP
  • 该站点的页面结构可能随时调整,如果后续无法提取到数据,可以重新检查对应标签的CSS选择器是否匹配

内容的提问来源于stack exchange,提问作者fletcher.l.collins

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 07:36:06