Python:urlopen() 与 CURL

Python: urlopen() versus CURL

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

更新

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

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

我遇到了同样的问题,我为解决这个问题所做的是创建一个 php 文件来打印请求 headers。然后我执行了 curlurlopen 并检查了 header 之间的差异。您可以在 PHP docs.

中找到该脚本的示例

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

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