Blick auf Scrapys Dokumentation für download_delay und Concurrent_requests, was ich verstehe ist: wenn ich 'CONCURRENT_REQUESTS': 25 und download_delay von 1 Sekunde, das bedeutet, dass einmal scrapy Anfragen 25 Seiten, scrapy wartet auf alle 25 zum Download, dann warten Sie 1 Sekunde und fordern Sie erneut 25 Seiten an. Wenn ich Download_Delay von 0 Sekunden verwende, macht Scrapy dasselbe wie oben ohne 1 Sekunde Verzögerung. Aber wenn ich diese Einstellungen in meinem Scraper verwende, funktioniert das nicht wie erwartet, da meine Netzwerkauslastung bei einer Verzögerung von 0 Sekunden 2,1 Mbps durchschnittlich ist, wenn ich eine Verzögerung von 0 Sekunden verwende, verglichen mit einer Verzögerung von 1 Sekunde, wenn meine Netzwerkauslastung gerade ist Durchschnitt 0,3 Mbit/s (maximal 0,4 Mbit/s). Hier ist mein Code:Scrapy's Download_Delay und gleichzeitige Anfragen funktionieren nicht wie erwartet
class DetailsxxxSpider(scrapy.Spider):
name = "details"
allowed_domains = ["www.xxx.com"]
download_delay = 1
custom_settings = {'CONCURRENT_REQUESTS': 25}
def start_requests(self):
engine = create_engine('sqlite:///temp.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
urls = session.query(Temp.url).filter_by(status = "Insert").all()
# print urls
for url in urls:
yield Request(url[0])
Crawl-Rate ist 1800 Seiten/Minute Durchschnitt bei 0 Sekunden Verzögerung verwendet wird, und bei der Verwendung von 1 Sekunde Verzögerung ist 43 Seiten/Minute, obwohl die Seiten/Minute Geschwindigkeit ideal 900 Seiten sein sollte/Minute . Es scheint, als würde download_delay pro Anfrage eingerichtet, wenn 1 Sekunde Verzögerung verwendet wird.
Ich verwende Proxies für jede Anfrage, die ich mache. Was vermisse ich? Gibt es eine Möglichkeit, dass ich Delay nach 25 Anfragen auf 1 Sekunde setzen kann. Ich möchte idealerweise die Geschwindigkeit von 900 Seiten/Minute. Jede Hilfe wird geschätzt.
Dank
Gibt es eine Möglichkeit, die Download-Verzögerung nach 25 Anfragen auf 1 Sekunde zu setzen, anstatt die Verzögerung zwischen den einzelnen aufeinander folgenden Anfragen einzustellen? –
Es scheint nicht, dass dies durch scrappy Einstellungen –