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.

Articole similare