L'adreça del proxy canvia al registre. La destinació no apareix mai al registre d'accés del proxy. Comproveu si el vostre middleware deixa que la sol·licitud arribi al baixador.

Al middleware de baixador de Scrapy, retornar un Request significa reprogramar aquella sol·licitud. No significa «continueu enviant aquest objecte amb les metadades que acabo de canviar».

Per a un selector que només tria una ruta, la forma important és:

def process_request(self, request):
    request.meta['proxy'] = self.choose_proxy()
    return None

Aquest fragment mostra la forma actual del ganxo; feu servir la interfície de middleware que admet la versió de Scrapy instal·lada. El selector ha de retornar un punt final vàlid i gestionar explícitament un conjunt no disponible. Un rastreig públic que permet intermediaris públics pot obtenir candidats HTTP de la llista de proxys HTTP per a aquest valor de retorn.

Retornar None permet que la resta del middleware de sol·licitud i el baixador continuïn. Retornar un altre Request és útil quan substituïu o reintenteu feina intencionadament, però necessita un motiu i una condició de sortida.

Un rotador que retorna la mateixa sol·licitud cada vegada pot executar repetidament el seu propi codi de selecció sense fer mai cap connexió a la destinació. Augmentar els temps d'espera o obrir més ports de proxy no pot reparar aquest bucle de flux de control.

Inspeccioneu l'entrada del middleware, el comportament de retorn i el primer intent real de xarxa com a esdeveniments separats. Una línia de registre que diu «proxy seleccionat» només estableix que el selector s'ha executat. No estableix que s'hagi enviat cap sol·licitud amb el punt final seleccionat.

Articles relacionats