ここに私の治療ストラテジストがあります。ダウンロード速度を制限する方法として、1分間に20回の治療を受けるためのURLを得ることは遅いですか?
import scrapy,urllib.request
AUTOTHROTTLE_ENABLED = True
AUTOTHROTTLE_START_DELAY = 3
AUTOTHROTTLE_MAX_DELAY = 6
CONCURRENT_REQUESTS_PER_IP = 1
CONCURRENT_REQUESTS = 1
CONCURRENT_REQUESTS_PER_SPIDER = 1
CLOSESPIDER_PAGECOUNT = 100000
CLOSESPIDER_TIMEOUT = 36000
DOWNLOAD_DELAY = 3
RETRY_ENABLED = False
COOKIES_ENABLED = False
RETRY_ENABLED = True
RETRY_TIMES = 1
COOKIES_ENABLED = False
class TestSpider(scrapy.Spider):
name = "quotes"
allowed_domains = ["some web"]
def __init__(self, *args, **kw):
self.timeout = 10
def start_requests(self):
yield scrapy.Request(url,callback=self.parse)
def parse(self, response):
do something
コマンドscrapy runspider test.py
で実行しているときにコンソールに表示される情報の概要。
'downloader/request_count': 3391,
'finish_time': datetime.datetime(2017, 10, 25, 12, 29, 43, 101017),
'start_time': datetime.datetime(2017, 10, 25, 12, 24, 10, 63516)}
総時間= 29min-24minの+(43-10)= 5min33second = 333秒
総要求= 3391
は、我々はそれが毎秒10件のURLを取得する限り迅速に実行することができます結論を出します。
なぜDOWNLOAD_DELAY = 3
とAUTOTHROTTLE_ENABLED = True
,AUTOTHROTTLE_START_DELAY = 3
とAUTOTHROTTLE_MAX_DELAY = 6
は速度を低下させることができませんか?
ダウンロード速度を1分あたり20のURLを取得するのと同じくらい遅くするにはどうすればよいですか?