Запросы от Ec2 заблокированы сайтом, несмотря на Proxymesh - PullRequest
0 голосов
/ 02 июня 2018

Я использую scrapy и scrapy_splash для очистки текстовых данных и снятия скриншотов с нескольких веб-сайтов.В соответствии с лучшими практиками я использую Proxymesh, вращающийся IP-сервис.Мой проект работал на моей локальной машине, но когда я развернул на пауках экземпляра Ec2, два моих сайта были полностью заблокированы.

После некоторого расследования я понял, что отключить эти сайты из моего экземпляра также не удалось, поэтому вполне вероятно, что эти два сайта блокируют все запросы с IP-адресов AWS.Но потом я вспомнил, что использую сервис Proxymesh для выполнения запросов, которые работали с моей локальной машины.

Я понимаю, почему веб-сайты блокируют все IP-адреса AWS, но почему у меня все еще возникают проблемы при передаче запросов через Proxymesh?Нужно ли передавать запросы в VPN, а затем в Proxymesh?Как я могу реализовать это в моем проекте scrapy_splash?

Все запросы из scrapy передаются в Proxymesh через переменную среды http proxy:

export https_proxy=https://proxy:port

Splash получает прокси в аргументах, переданных запросу.

# Pass url to splash for screenshoting.
splash_args = {
                     'wait': 3.0,
                     'html': 1,
                     'png': 1,
                     'width': 600,
                     'render_all': 1,
                     'wait': 3.0,
                     'proxy':'http://<MYPROXYCREDS>:@proxy.crawlera.com:8010'
                                    }

yield SplashRequest(response.url,
                    self.create_screenshot,
                    endpoint='render.json',
                    args=splash_args,
                    meta={'ip_address': ip_address,
                                'title': title,
                                'filename': filename,
                                'server': server})
...