HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: python, scrapy, проксирование, прокси-сервера для скрейпинга, stormproxies, proxymesh, settings.py, прокси в спайдер, middlewares.py</p>
1 <p>Теги: python, scrapy, проксирование, прокси-сервера для скрейпинга, stormproxies, proxymesh, settings.py, прокси в спайдер, middlewares.py</p>
2 <p><strong>Scrapy</strong>- прекрасный фреймворк для парсинга данных с сайтов. Правда, сайты не любят, чтобы их данные парсили, ещё и бесплатно. И поэтому банят беспощадно. Но иногда очень хочется спарсить немножко данных. На помощь приходят прокси-сервера для<strong>скрейпинга</strong>. Например,<strong>stormproxies</strong>,<strong>proxymesh</strong>и другие.</p>
2 <p><strong>Scrapy</strong>- прекрасный фреймворк для парсинга данных с сайтов. Правда, сайты не любят, чтобы их данные парсили, ещё и бесплатно. И поэтому банят беспощадно. Но иногда очень хочется спарсить немножко данных. На помощь приходят прокси-сервера для<strong>скрейпинга</strong>. Например,<strong>stormproxies</strong>,<strong>proxymesh</strong>и другие.</p>
3 <p>Приведу пример одного из способов подключения такого прокси в спайдер.</p>
3 <p>Приведу пример одного из способов подключения такого прокси в спайдер.</p>
4 <p>В<strong>settings.py</strong>прописываем наш<strong>Middleware</strong>:</p>
4 <p>В<strong>settings.py</strong>прописываем наш<strong>Middleware</strong>:</p>
5 DOWNLOADER_MIDDLEWARES = { 'myspider.middlewares.MyspiderProxyMiddleware': 100, }<p>В<strong>middlewares.py</strong>прописываем наш класс:</p>
5 DOWNLOADER_MIDDLEWARES = { 'myspider.middlewares.MyspiderProxyMiddleware': 100, }<p>В<strong>middlewares.py</strong>прописываем наш класс:</p>
6 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<p>А уже в конкретном спайдере прописываем нужное значение прокси и агента:</p>
6 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<p>А уже в конкретном спайдере прописываем нужное значение прокси и агента:</p>
7 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'<h2>Удачного скрейпинга!</h2>
7 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'<h2>Удачного скрейпинга!</h2>
8 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
8 <p><em>Есть вопрос? Напишите в комментариях!</em></p>
9  
9