我正在使用 Python 编写一个网络爬虫并且非常喜欢它!但我注意到 Python 上的 urlopen(url).read()
和终端上的 curl
产生的结果之间存在一些差异。我试过install the pycurl module没有成功。有没有一种简单的方法可以在 Python 上生成 CURL 结果?
更新
在这种情况下,我解析了 this网址。我在两个请求 User-Agent: Mozilla/5.0
上传递了相同的 header 。以下是输出:
- cURL 输出:http://pastebin.com/PmmNhsbba
- urlopen 输出:http://pastebin.com/7Wrt8pQZ
最佳答案
我知道这是一个老问题,但也许答案仍然有用。
我遇到了同样的问题,我为解决这个问题所做的是创建一个打印请求 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/