Конфигурация прокси в Scrapy - PullRequest
0 голосов
/ 09 мая 2019

Мне нужно настроить прокси в моем проекте Scrapy. Выдает следующее сообщение об ошибке при попытке его запустить:

Error

2019-05-09 19:36:50 [scrapy.extensions.telnet] INFO: Telnet console listening on 127.0.0.1:6023
2019-05-09 19:36:50 [scrapy.downloadermiddlewares.retry] DEBUG: Retrying <GET https://www.myip.com/> (failed 1 times): Could not open CONNECT tunnel with proxy x.x.x.x:xxxx [{'status': 407, 'reason': b'Unauthorized'}]

Код

class FirstSpyder(CrawlSpider):
    # The name of the spider
    name = "FirstSpyder"
    def __init__(self, *args, **kwargs):
        super(FirstSpyder, self).__init__(*args, **kwargs)
        self.proxy_pool = ['http://x.x.x.x:xxxx']

    # The domains that are allowed (links to other domains are skipped)
    allowed_domains = ["myip.com"]

    # The URLs to start with
    start_urls = ['https://www.myip.com/']

    def start_requests(self):
        for url in self.start_urls:
            request = Request(url, dont_filter=True, callback=self.parse)
            # set the meta['item'] to use the item in the next call back
            request.meta['proxy'] = random.choice(self.proxy_pool)
            yield request

    def parse(self, response):
        ip = response.css('#ip::text').get()
        print ("IPV4::",ip)

1 Ответ

2 голосов
/ 09 мая 2019

Итак, из-за ошибки, которую она возвращает, вы можете увидеть, что она говорит «Unauthorized».

Код состояния 407 означает: « Код ответа об ошибке клиента« Требуется проверка подлинности прокси-сервера HTTP 407 »указывает на то, чтозапрос не был применен, поскольку в нем отсутствуют действительные учетные данные для аутентификации для прокси-сервера, который находится между браузером и сервером, который может получить доступ к запрошенному ресурсу."

Не видя немного вашего кода, можно 'Тебе многое не поможет ...

И есть библиотека, которая поможет вам сделать это: https://github.com/aivarsk/scrapy-proxies

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...