2016-04-20 36 views
3

我有一套25,000+个网址,需要我们进行抓取。我一直看到,在大约22,000个网址之后,抓取速度急剧下降。抓取速度急剧减慢

看看这些日志行得到一些观点:

2016-04-18 00:14:06 [scrapy] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:15:06 [scrapy] INFO: Crawled 5324 pages (at 5324 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:16:06 [scrapy] INFO: Crawled 9475 pages (at 4151 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:17:06 [scrapy] INFO: Crawled 14416 pages (at 4941 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:18:07 [scrapy] INFO: Crawled 20575 pages (at 6159 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:19:06 [scrapy] INFO: Crawled 22036 pages (at 1461 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:20:06 [scrapy] INFO: Crawled 22106 pages (at 70 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:21:06 [scrapy] INFO: Crawled 22146 pages (at 40 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:22:06 [scrapy] INFO: Crawled 22189 pages (at 43 pages/min), scraped 0 items (at 0 items/min) 
2016-04-18 00:23:06 [scrapy] INFO: Crawled 22229 pages (at 40 pages/min), scraped 0 items (at 0 items/min) 

我这里还有我的设置

# -*- coding: utf-8 -*- 

BOT_NAME = 'crawler' 

SPIDER_MODULES = ['crawler.spiders'] 
NEWSPIDER_MODULE = 'crawler.spiders' 

CONCURRENT_REQUESTS = 10 
REACTOR_THREADPOOL_MAXSIZE = 100 
LOG_LEVEL = 'INFO' 
COOKIES_ENABLED = False 
RETRY_ENABLED = False 
DOWNLOAD_TIMEOUT = 15 
DNSCACHE_ENABLED = True 
DNSCACHE_SIZE = 1024000 
DNS_TIMEOUT = 10 
DOWNLOAD_MAXSIZE = 1024000 # 10 MB 
DOWNLOAD_WARNSIZE = 819200 # 8 MB 
REDIRECT_MAX_TIMES = 3 
METAREFRESH_MAXDELAY = 10 
ROBOTSTXT_OBEY = True 
USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36' #Chrome 41 

DEPTH_PRIORITY = 1 
SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue' 
SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue' 

#DOWNLOAD_DELAY = 1 
#AUTOTHROTTLE_ENABLED = True 
HTTPCACHE_ENABLED = True 
HTTPCACHE_EXPIRATION_SECS = 604800 # 7 days 
COMPRESSION_ENABLED = True 

DOWNLOADER_MIDDLEWARES = { 
    'scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware': 100, 
    'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware': 300, 
    'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware': 350, 
    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400, 
    'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware': 550, 
    'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware': 580, 
    'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware': 590, 
    'scrapy.downloadermiddlewares.redirect.RedirectMiddleware': 600, 
    'crawler.middlewares.RandomizeProxies': 740, 
    'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 750, 
    'scrapy.downloadermiddlewares.chunked.ChunkedTransferMiddleware': 830, 
    'scrapy.downloadermiddlewares.stats.DownloaderStats': 850, 
    'scrapy.downloadermiddlewares.httpcache.HttpCacheMiddleware': 900, 
} 

PROXY_LIST = '/etc/scrapyd/proxy_list.txt' 
  • 内存和CPU的消耗低于10%
  • tcptrack显示没有不寻常的网络活动
  • iostat显示可忽略的磁盘I/O \

我能看什么来调试?

+0

你试图改变你的日志记录级别是否有任何意外的是怎么回事? – DuckPuncher

+4

这些网址在同一个网站上吗?也许你在22,000次点击后被那个/那些网站限制了速度?尝试从多个不同的IP地址进行搜索,看看它是不是更快。尝试让这些网站将你的IP列入白名单。 (我认为你自己的ISP或网络本身不是速率限制的你)。 – smci

+0

TCP连接在使用后是否关闭? – ozOli

回答

0

原来的问题是一个特定的域导致积压。 URL队列将被填满并等待来自这些域的响应。由于每个IP /域只允许有一个请求被允许,所以每次处理一个请求。

我开始记录我的代理服务器,并追踪他们的输出结果,结果显示为白天。

我不会想通了这一点没有评论上面的对话 - 感谢@DuckPuncher和@smci