Scrapy прокси middleware: Request наспроти None како повратни вредности
Вратете ја контролата откако ќе доделите Scrapy прокси, наместо ненамерно повторно да го закажете истото барање пред преземањето.
Адресата на проксито се менува во дневникот. Одредиштето никогаш не се појавува во дневникот за пристап на проксито. Проверете дали вашиот middleware воопшто го пропушта барањето до преземачот.
Во middleware на преземачот на Scrapy, враќањето на Request значи повторно закажување на тоа барање. Тоа не значи „продолжете да го испраќате овој објект со метаподатоците што штотуку ги сменив“.
За селектор што избира само рута, важната форма е:
def process_request(self, request):
request.meta['proxy'] = self.choose_proxy()
return None
Овој фрагмент ја прикажува тековната форма на куката; користете го интерфејсот за middleware што го поддржува инсталираното издание на Scrapy. Селекторот мора да врати валидна крајна точка и експлицитно да се справи со недостапен базен. Јавното ползење што дозволува јавни посредници може да зема HTTP кандидати од списокот на HTTP прокси за таа повратна вредност.
Враќањето None му дозволува на остатокот од middleware за барања и на преземачот да продолжат. Враќањето друг Request е корисно кога намерно заменувате или повторувате работа, но бара причина и услов за излез.
Ротатор што го враќа истото барање секој пат може постојано да го извршува сопствениот код за избор без никогаш да воспостави врска со одредиштето. Зголемувањето на временските ограничувања или отворањето повеќе прокси порти не може да ја поправи таа јамка на контролниот тек.
Испитајте го влезот во middleware, однесувањето при враќање и првиот вистински мрежен обид како одделни настани. Редот во дневникот „избрано прокси“ докажува само дека селекторот се извршил. Не докажува дека е испратено барање со избраната крајна точка.