Adresa proxyja mijenja se u dnevniku. Odredište se nikada ne pojavljuje u pristupnom dnevniku proxyja. Provjerite propušta li vaš middleware zahtjev uopće do preuzimača.

U Scrapyjevu middlewareu preuzimača, vraćanje Request znači ponovno zakazivanje tog zahtjeva. To ne znači „nastavite slati ovaj objekt s metapodacima koje sam upravo promijenio“.

Za selektor koji bira samo rutu, važan je oblik:

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

Ovaj isječak prikazuje trenutni oblik kuke; rabite sučelje middlewarea koje podržava instalirano izdanje Scrapyja. Selektor mora vratiti valjanu završnu točku i izričito obraditi nedostupan skup. Javno pretraživanje koje dopušta javne posrednike može za tu povratnu vrijednost crpsti HTTP kandidate iz popisa HTTP proxyja.

Vraćanje None dopušta ostatku middlewarea zahtjeva i preuzimaču da nastave. Vraćanje drugog Requesta korisno je kada namjerno zamjenjujete ili ponavljate posao, ali traži razlog i uvjet izlaska.

Rotator koji svaki put vraća isti zahtjev može iznova izvršavati vlastiti kôd za odabir, a da nikada ne uspostavi vezu s odredištem. Povećavanje vremenskih ograničenja ili otvaranje dodatnih proxy portova ne može popraviti tu petlju upravljanja tokom.

Promatrajte ulazak u middleware, ponašanje pri vraćanju i prvi stvarni mrežni pokušaj kao zasebne događaje. Redak u dnevniku „odabran proxy“ dokazuje samo da je selektor radio. Ne dokazuje da je zahtjev s odabranom završnom točkom poslan.

Povezani članci