Проксирование для Scrapy
Scrapy – прекрасный фреймворк для парсинга данных с сайтов. Правда, сайты не любят, чтобы их данные парсили, ещё и бесплатно. И поэтому банят беспощадно. Но иногда очень хочется спарсить немножко данных. На помощь приходят прокси-сервера для скрейпинга. Например, stormproxies, proxymesh и другие.
Приведу пример одного из способов подключения такого прокси в спайдер.
В settings.py прописываем наш Middleware:
DOWNLOADER_MIDDLEWARES = { 'myspider.middlewares.MyspiderProxyMiddleware': 100, }
В middlewares.py прописываем наш класс:
class MyspiderProxyMiddleware(object): def process_request(self, request, spider): if spider.proxy: request.meta['proxy'] = spider.proxy if spider.uagent: request.headers['User-Agent'] = spider.uagent
А уже в конкретном спайдере прописываем нужное значение прокси и агента:
class MySpider(scrapy.Spider): uagent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36' proxy = '83.149.70.159:13011'
Удачного скрейпинга!
Есть вопрос? Напишите в комментариях!