我发现我抓取的某些页面很慢,使用Goagent
访问页面比较快,所以我在启动我的蜘蛛之前运行这个:
export http_proxy=http://192.168.1.102:8087
然而,当我启动蜘蛛时,它会报告:
[<twisted.python.failure.Failure <class 'twisted.web._newclient.ParseError'>>]
为了验证代理,我运行了这个 curl 命令:
curl -I -x 192.168.1.102:8087 http://www.blabla.com/target/page.php
输出 header 对我来说似乎很正常:
HTTP/1.1 200
Content-Length: 0
Via: HTTP/1.1 GWA
Content-Encoding: gzip
X-Powered-By: PHP/5.3.3
Vary: Accept-Encoding
Server: Apache/2.2.15 (CentOS)
Connection: close
Date: Sun, 30 Mar 2014 16:49:29 GMT
Content-Type: text/html
我尝试将其添加到 scrapy 的 settings.py
中:
DOWNLOADER_MIDDLEWARES = {
'scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware':100
}
仍然,没有运气。是 scrapy 有问题还是我遗漏了其他东西?
我的scrapy版本是Scrapy 0.22.2
请您参考如下方法:
您可以尝试同时启用 http_proxy 和 https_proxy。
export http_proxy=http://192.168.1.102:8087
export https_proxy=http://192.168.1.102:8087
我猜你的 Twisted 是 15.0.0,这个版本的 https throw proxy 有问题。