Naslov proxyja se v dnevniku spremeni. Cilj se nikoli ne pojavi v dnevniku dostopa proxyja. Preverite, ali vaša vmesna programska oprema zahtevo sploh spusti do prenašalnika.

V vmesni programski opremi prenašalnika Scrapy vrnitev Request pomeni ponovno načrtovanje te zahteve. To ne pomeni »nadaljujte s pošiljanjem tega predmeta z metapodatki, ki sem jih pravkar spremenil«.

Za izbirnik, ki izbere le pot, je pomembna oblika:

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

Ta fragment prikazuje trenutno obliko kavlja; uporabite vmesnik vmesne programske opreme, ki ga podpira nameščena izdaja Scrapy. Izbirnik mora vrniti veljavno končno točko in izrecno obravnavati nedosegljiv nabor. Javno pajkanje, ki dovoljuje javne posrednike, lahko za to vrnjeno vrednost črpa kandidate HTTP s seznama proxyjev HTTP.

Vrnitev None omogoči preostali vmesni programski opremi za zahteve in prenašalniku, da nadaljujeta. Vrnitev drugega Request je koristna, ko delo namerno zamenjate ali znova poskušate, vendar potrebuje razlog in pogoj za izhod.

Vrtilnik, ki vsakič vrne isto zahtevo, lahko znova in znova izvaja svojo kodo za izbiro, ne da bi kdaj vzpostavil povezavo s ciljem. Povečanje časovnih omejitev ali odpiranje dodatnih vrat proxy ne more popraviti te zanke nadzornega toka.

Preučite vstop v vmesno programsko opremo, vedenje pri vrnitvi in prvi dejanski omrežni poskus kot ločene dogodke. Vrstica dnevnika »proxy izbran« dokazuje le, da se je izbirnik izvedel. Ne dokazuje, da je bila poslana zahteva z izbrano končno točko.

Sorodni članki