Python:urlopen() 与 CURL

标签 python curl pycurl

我正在使用 Python 编写一个网络爬虫并且非常喜欢它!但我注意到 Python 上的 urlopen(url).read() 和终端上的 curl 产生的结果之间存在一些差异。我试过install the pycurl module没有成功。有没有一种简单的方法可以在 Python 上生成 CURL 结果?

更新

在这种情况下,我解析了 this网址。我在两个请求 User-Agent: Mozilla/5.0 上传递了相同的 header 。以下是输出:

最佳答案

我知道这是一个老问题,但也许答案仍然有用。

我遇到了同样的问题,我为解决这个问题所做的是创建一个打印请求 header 的 php 文件。然后我执行了一个 curl 和一个 urlopen 并检查了 header 之间的差异。您可以在 PHP docs 中找到该脚本的示例.

此外,您可以转到浏览器并检查正在发送的 header 。这样做我看到 urlopen 发送 connection: close 而不是 keep-alive

所以最后我添加了 keep-alive header ,urlopen 开始作为 curl 工作。这是我的具体问题,但由于服务器要求,您的问题可能有所不同,您需要添加或删除另一个 header 。

关于Python:urlopen() 与 CURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33458916/

相关文章:

c - Libcurl 如何不显示所有这些信息

python - 使用 PyCurl 从文件对象上传文件

python - group_by 返回重复的键

c# - 如何将 curl 请求转换为 HttpClient

javascript - 如何在Python中将JS null写入文件而不是 'null'作为字符串

bash - 使用字符串数组作为参数的 Curl POST 请求

python-requests 钩子(Hook)类似于 pycurl.WRITEFUNCTION?

python - 在 CentOS 上安装 Pycurl?

python - 用正则表达式替换所有非字母/数字

python - Yajl 在 Python 中使用 githubarchive.org JSON 流解析错误