我发现我抓取的某些页面很慢,使用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 有问题。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!