Proxy-uri per cerere cu middleware-ul proxy HTTP din Scrapy
Folosiți metadatele cererilor Scrapy și middleware-ul său proxy înainte de a copia un middleware vechi de autentificare personalizat într-un crawler.
Middleware-ul proxy HTTP din Scrapy citește un proxy din metadatele cererii:
yield scrapy.Request(
'https://example.com/',
callback=self.parse,
meta={'proxy': 'http://203.0.113.10:8080'},
)
Înlocuiți punctul final din documentație și lăsați middleware-ul activat. Lista de proxy-uri HTTP oferă candidați publici pentru URL-ul acestei cereri. Aceasta selectează ruta cererii; un pool de proxy-uri are nevoie de logică de selecție separată.
Autentificarea urmează punctul final selectat
Middleware-ul integrat gestionează acreditările furnizate prin URL-ul de proxy acceptat și antetul de autorizare asociat. Escapați caracterele rezervate din URL și evitați să înregistrați acel URL.
Un middleware separat nu ar trebui să păstreze un antet Basic pentru proxy-ul anterior după ce punctul final se schimbă. Lăsați un singur strat să gestioneze ruta și acreditările acesteia împreună.
Ordinea de selecție și valorile implicite
Dacă un middleware de descărcare personalizat alege proxy-ul, rulați-l înainte ca middleware-ul proxy integrat să proceseze cererea. Verificați ordinea și API-ul versiunii instalate; importurile scrapy.contrib învechite aparțin versiunilor mai vechi.
Mediul procesului poate furniza, de asemenea, valori implicite specifice schemei. Pentru o cerere deliberat directă, folosiți comportamentul special documentat al metadatelor proxy: o cheie absentă nu înseamnă neapărat acces direct.
Inspectați rezultatul real. Un 407 se referă la autentificarea proxy-ului, în timp ce o limită de rată sau o refuzare a accesului site-ului pot apărea după ce ruta a funcționat corect.