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

Python无伤害爬虫:driver.page_source是否会重复请求服务器?

问题解答

核心结论

driver.page_source不会主动向服务器发起新的数据请求,它只是读取当前浏览器内存中已经渲染完成的DOM内容,所以就算你缩短sleep时间、大幅增加循环次数,也不会额外占用服务器资源,也不会受到服务器刷新速率的限制——你能读取到的动态值,始终是服务器已经推送到浏览器的最新内容。

详细解释

  • driver.page_source的本质:这个方法是直接从Selenium控制的浏览器实例中获取当前页面的HTML源码,完全是本地操作,不会触发HTTP请求到服务器。浏览器已经在后台接收服务器推送的内容(比如你的场景里2Hz的频率)并更新DOM,page_source只是把这个已更新的DOM快照读出来而已。
  • 关于循环频率与服务器推送的关系:如果服务器每秒推送2次动态值,那就算你把循环的sleep改成0.1秒(每秒读10次),大部分时候你读到的page_source里的动态值和上一次是一样的——只有当服务器完成新的推送、浏览器更新了DOM之后,你才能读到新的值。
  • 资源占用的问题:因为没有额外的服务器请求,所以这种操作只会占用本地的CPU和内存(主要是浏览器和Python脚本的资源),不会给服务器增加负担,完全符合你不想占用服务器资源的需求。

对你代码的小建议

  • 你代码里的soup.prettify少了括号,应该写成soup.prettify()才能正确打印格式化后的HTML。
  • driver.close()同样少了括号,而且driver.quit()已经会关闭整个浏览器实例,后面的driver.close()可以去掉,避免报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:25:17