我一直在使用Scrapy抓取電子商務網站,抓取速度爲50〜60頁/分鐘。 我使用的8核心林德服務器與24 GB RAM,所以我不認爲網絡或服務器可能是原因。Scrapy抓取速度慢
我知道的事實,一些網站給下載等待時間,如果我們過於頻繁抓取的,但是這是一個大的網站,我使用proxymesh代理也一樣,所以這也不可能是可能的原因。
我覺得我缺少在settings.py文件的東西 -
BOT_NAME = 'scraper'
SPIDER_MODULES = ['com.crawler.scraper.spiders']
NEWSPIDER_MODULE = 'com.crawler.scraper.spiders'
ITEM_PIPELINES = {
'com.crawler.scraper.pipelines.generic_pipeline.Pipeline': 300
}
RANDOMIZE_DOWNLOAD_DELAY = False
COOKIES_ENABLED = False
CONCURRENT_ITEMS = 200
CONCURRENT_REQUESTS=50
DOWNLOAD_DELAY= 0
CONCURRENT_REQUESTS_PER_DOMAIN=50
LOG_LEVEL = 'ERROR'
RETRY_TIMES = 2
CONNECTION_TIMEOUT = 30
USER_AGENT_LIST = 'user_agents.txt'
DOWNLOADER_MIDDLEWARES = {
'random_useragent.RandomUserAgentMiddleware': 400,
'com.crawler.scraper.middlewares.proxy_middleware.ProxyMiddleware': 410,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
}
我從DOWNLOAD_DELAY開始5,現在連我都保留了它爲0,但我仍然沒有看到任何顯著變化每分鐘的請求數。
所以,我的問題是 - >
1)我應該怎麼做才能提高到至少200請求/分鐘的速度? 2)什麼應該是CONCURRENT_ITEMS的理想值?
單頁面的平均響應時間是多少? 50-60rpm對於單個客戶來說已經是重要的負載。 – jordanm
但是,如果我使用的是動態代理,網站無法識別請求來自同一個客戶端,並且網站是亞馬遜,而且我看到其他人以更高的速度爬行,@jordanm – sagar
[AutoThrottle擴展](https://docs.scrapy.org/en/latest/topics/autothrottle.html)開啓還是關閉?你可以禁用它並檢查它是否有任何區別。 –