Использовать определенное промежуточное ПО загрузчика Scrapy c для каждого запроса - PullRequest
0 голосов
/ 28 мая 2020

Я использую Crawlera в качестве службы ротации IP-адресов для сканирования определенного c веб-сайта, который быстро блокирует мой IP-адрес, но у меня эта проблема возникает только с одним веб-сайтом из дюжины.

Поскольку это возможно зарегистрировать несколько промежуточных программ для проекта Scrapy, я хотел знать, можно ли определить промежуточное программное обеспечение загрузчика для использования ПО ЗАПРОСУ. все мои просьбы.

1 Ответ

0 голосов
/ 28 мая 2020

Одно из возможных решений - использование атрибута custom_settings паука (и удаление CrawleraMiddleware из настроек проекта
(при условии, что у вас 1 паук на 1 сайт и CrawleraMiddleware включен в настройках проекта) ):

class ProblemSpider(scrapy.spider):

    custom_settings = {
        'DOWNLOADER_MIDDLEWARES' : {'scrapy_crawlera.CrawleraMiddleware': 610},
        'CRAWLERA_ENABLED' : True,
        'CRAWLERA_APIKEY' : '<API key>'}

    def parse(self, response):
....

В этом случае CrawleraMiddleware будет использоваться только в пауках, для которых он определен в их атрибуте custom_settings.

...