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

U Scrapyjevom 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 samo bira rutu, važan oblik je:

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

Ovaj isječak prikazuje trenutni oblik kuke; koristite sučelje middlewarea koje podržava instalirano izdanje Scrapyja. Selektor mora vratiti valjanu krajnju točku i izričito obraditi nedostupan skup. Javno pretraživanje koje dopušta javne posrednike može za tu povratnu vrijednost crpiti 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 kod 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 krajnjom točkom poslan.

Povezani članci