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

使用Python Requests获取HTML返回空白及CSS选择器使用疑问

解决Python网页爬取股价的问题

首先明确:你纠结的CSS选择器和CSS路径本质是一回事——浏览器生成的「CSS路径」就是完整层级的CSS选择器,核心问题不是选哪个,而是得先解决当前的几个关键障碍:

  • requests返回空白但本地保存有内容
    这是典型的动态渲染问题:很多网站用JavaScript加载股价这类数据,requests只能获取服务器返回的初始HTML,动态内容是浏览器执行JS后才生成的。你手动保存的txt是浏览器渲染后的完整页面,和requests拿到的初始内容不一样。解决办法是用selenium或playwright这类能模拟浏览器的工具,它们会执行页面JS,获取渲染后的完整HTML。

  • CSS选择器返回[]
    要么是你用的选择器对应的元素在requests拿到的初始HTML里根本不存在(因为是动态生成的),要么是选择器本身有问题。比如浏览器复制的完整CSS路径常包含动态生成的类名、ID(比如随机字符串),刷新页面就会变化,自然选不到元素。建议放弃复制的长路径,找元素的稳定特征:比如带固定属性的标签(如span[data-stock="AAPL"])、固定类名(如.stock-price),写简洁的选择器,比层级路径更可靠。

  • 谷歌搜索页无法获取股价
    谷歌搜索结果不仅是动态渲染,反爬机制也很严格,requests直接请求大概率拿不到正确内容,甚至会被限制访问。如果要从谷歌获取,同样需要用模拟浏览器的工具,同时注意设置合理的请求头、控制访问频率。

实操小步骤

  1. 打开浏览器开发者工具(F12),切换到「网络」标签,刷新目标页面,查看HTML请求的响应内容,确认股价是静态存在还是动态生成的。
  2. 找到股价对应的HTML标签,提取它的稳定属性/类名,编写简洁的CSS选择器测试。
  3. 若为动态渲染,改用selenium加载页面后再用选择器定位元素。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:55:25