как анонимно отказаться от использования Scrapy Tor Privoxy & UserAgent? (Windows 10)

83
11

Ответ на этот вопрос был довольно трудно найти, поскольку информация разбросана, и название вопросов когда-то вводит в заблуждение. Ниже приведен список всех необходимых сведений в одном месте.

спросил(а) 2017-12-21T19:15:00+03:00 2 года, 10 месяцев назад
1
Решение
59

Ваш паук должен выглядеть.

# based on https://doc.scrapy.org/en/latest/intro/tutorial.html

import scrapy
import requests

class QuotesSpider(scrapy.Spider):
name = "quotes"

def start_requests(self):
urls = [
'http://quotes.toscrape.com/page/1/',
'http://quotes.toscrape.com/page/2/',
]
for url in urls:
print('\n\nurl:', url)
## use one of the yield below

# middleware will process the request
yield scrapy.Request(url=url, callback=self.parse)

# check if Tor has changed IP
#yield scrapy.Request('http://icanhazip.com/', callback=self.is_tor_and_privoxy_used)

def parse(self, response):
page = response.url.split("/")[-2]
filename = 'quotes-%s.html' % page
with open(filename, 'wb') as f:
f.write(response.body)
print('\n\nSpider: Start')
print('Is proxy in response.meta?: ', response.meta)
print ("user_agent is: ",response.request.headers['User-Agent'])
print('\n\n Spider: End')
self.log('Saved file --- %s' % filename)

def is_tor_and_privoxy_used(self, response):
print('\n\nSpider: Start')
print("My IP is : " + str(response.body))
print("Is proxy in response.meta?: ", response.meta) # not header dispo
print('\n\nSpider: End')
self.log('Saved file %s' % filename)

Вам также потребуется добавить материал в middleware.py и settings.py. Если вы не знаете, как это сделать, это поможет вам

ответил(а) 2017-12-21T19:15:00+03:00 2 года, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема