Как настроить IP прокси из данного пула прокси? - PullRequest
0 голосов
/ 02 июля 2019

Мне дана ссылка на пул прокси http://10.10.5.17:5009/proxy_pool, которая выдает следующее:

{
    "msg": "success",
    "list": [
        "111.72.193.250:34621",
        "114.99.28.7:25995",
        "121.234.245.76:35513",
        "220.186.155.66:49366",
        "117.90.252.72:45037"
    ],
    "data": "114.99.28.7:25995"
}

Эти IP-адреса меняются каждые несколько минут. Я хотел бы знать, как настроить это в Scrapy.

Я видел учебники, показывающие, как добавить каждый IP-адрес в settings.py, а затем вызвать его в middlewares.py, но я не могу сделать это таким образом, так как мне нужно прочитать IP-адреса по ссылке (и они быстро меняются).

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Вам придется написать свое собственное промежуточное ПО для загрузчиков, которое будет обрабатывать загрузку списка прокси-серверов, время от времени получать новый список и назначать случайный прокси-сервер из текущего списка для каждого запроса.

Вам следует начать с прочтения документации о промежуточном программном обеспечении загрузчика . Затем я рекомендую вам найти существующие промежуточные программы, которые имеют дело с прокси (например, scrapy-вращающиеся прокси ), и поучиться у них.

0 голосов
/ 03 июля 2019
import json
import random


def start_requests(self):
    proxy_request = scrapy.Request(url='http://10.10.5.17:5009/proxy_pool', callback=self.prepare_request)
    yield proxy_request


def prepare_request(self, response):
    target_url = 'XXX'
    proxy_response = json.loads(response.body_as_unicode())
    proxy_list = [proxy for proxy in proxy_response['list']]
    request = scrapy.Request(url=target_url, meta={'proxy': random.choice(proxy_list)}, callback=self.scrape)


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