【发布时间】:2016-02-17 18:24:10
【问题描述】:
我正在使用 Scrapy,并尝试通过创建自定义的 DownloaderMiddleware 来使用代理池。我遇到了一些麻烦,想在这里得到一些帮助(我查看了 Scrapy 网站上的文档,但没有代码示例)
我的python代码是:
import random
class ProxyRotator(object):
proxy_pool = ['ip1...', 'ip2...', 'ip3...']
def process_request(self, request, spider):
request.meta['proxy'] = "http://" + self.proxy_pool[random.randint(0, len(self.proxy_pool) - 1)] + ":80"
return request
在settings.py中,我添加了
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 110,
'pricecheck_crawler.ProxyMiddleware.ProxyRotator': 100,
}
目前,抓取工具无法从该网站获取任何信息。 日志显示:
2016-02-17 11:27:50 [scrapy] 信息:已爬取 0 页(以 0 页/分钟),抓取 0 项(以 0 项/分钟)
2016-02-17 11:27:50 [scrapy] 调试:Telnet 控制台正在监听 127.0.0.1:6051
2016-02-17 11:28:50 [scrapy] 信息:爬取 0 页(以 0 页/分钟),抓取 0 项(以 0 项/分钟)
2016-02-17 11:29:50 [scrapy] 信息:爬取 0 页(以 0 页/分钟),抓取 0 项(以 0 项/分钟)
【问题讨论】:
-
你得到的错误是什么?
-
没有错误,但是爬虫只是没有从网站上得到任何东西。例如,在日志中:2016-02-17 11:27:50 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2016-02-17 11: 27:50 [scrapy] 调试:Telnet 控制台在 127.0.0.1:6051 上监听 2016-02-17 11:28:50 [scrapy] 信息:抓取 0 页(以 0 页/分钟),抓取 0 个项目(以 0 个项目/min) 2016-02-17 11:29:50 [scrapy] 信息:爬取 0 页(以 0 页/分钟),抓取 0 项(以 0 项/分钟)
-
您使用的代理是
http还是socks? Scrapy 不支持袜子。 -
另外,请不要更改原来的问题。
标签: python web-scraping scrapy web-crawler