gpt4 book ai didi

Python 请求没有给我与我的浏览器相同的 HTML

转载 作者:太空狗 更新时间:2023-10-29 17:33:26 25 4
gpt4 key购买 nike

我正在使用 Python 请求获取 Wikia 页面。但是有一个问题:请求没有给我相同的 HTML,因为我的浏览器是同一个页面。

为了比较,here's the page Firefox gets me , 和 here's the page requests fetches (下载它们以查看 - 抱歉,没有简单的方法可以直观地托管来自另一个站点的一些 HTML)。

您会注意到一些差异 ( super unfriendly diff )。有一些小东西,比如属性 beinig 排序不同等等,但也有一些非常非常大的东西。最重要的是缺少最后六个<img> s,以及整个导航和页 footer 分。即使在原始 HTML 中,页面看起来也像是被突然截断了。

为什么会发生这种情况,是否有解决方法?我已经想了很多事情,但都没有成果:

  • 请求 header 干扰?不,我尝试复制我的浏览器发送的 header ,User-Agent和所有,1:1 到 requests 请求,但没有任何改变。
  • JavaScript 在加载 HTML 后加载内容?不。即使禁用了 JS,Firefox 仍会为我提供“良好”页面。
  • 呃……好吧……还能有什么?

如果您知道这种情况发生的方式和解决方法,那就太棒了。谢谢!

最佳答案

我有一个类似的问题:

  • 使用 Python 和通过浏览器使用相同的 header
  • JavaScript 绝对排除在外

为了解决这个问题,我最终将 requests 库换成了 urllib.request

基本上,我替换了:

import requests

session = requests.Session()
r = session.get(URL)

与:

import urllib.request

r = urllib.request.urlopen(URL)

然后就成功了。

也许其中一个库在幕后做了一些奇怪的事情?不确定这是否适合您。

关于Python 请求没有给我与我的浏览器相同的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29773528/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com