https://unicodono.com.br/anuncios?page=3&uf_id=&cidade_id=&marca=&modelo=&versao=&cambio=&valor_minimo=&valor_maximo=&ano_minimo=&ano_maximo=&km_minimo=&km_maximo=&usado=&novos=&moto=&carro=&orderby=menor_valor&blindagem=&nao_blindagem=&cep=
Это URL, с которого я запускаю процесс сканирования.
https://unicodono.com.br/anuncios/itens/ajax?page=1
и это вызов AJAX, который динамически загружает данные на страницу.
Я думаю, что отправляю форму и заголовки правильно, но ответ возвращает ошибку 419, и сканер перестает работать. Я не знаю, как интерпретировать эту ошибку. Я что-то упустил в своем пауке?
class MySpider(CrawlSpider):
name = 'myspider'
start_urls = ['https://unicodono.com.br/anuncios?page=1&uf_id=&cidade_id=&marca=&modelo=&versao=&cambio=&valor_minimo=&valor_maximo=&ano_minimo=&ano_maximo=&km_minimo=&km_maximo=&usado=&novos=&moto=&carro=&orderby=menor_valor&blindagem=&nao_blindagem=&cep=',]
form_data = {'uf_id': '',
'cidade_id': '',
'marca': '',
'modelo': '',
'versao': '',
'valor_minimo': '',
'valor_maximo': '',
'ano_minimo': '',
'ano_maximo': '',
'km_minimo': '',
'km_maximo': '',
'orderby': 'menor_valor'}
def parse(self, response):
for url in self.start_urls:
yield scrapy.FormRequest(
url='https://unicodono.com.br/anuncios/itens/ajax?page=1',
method='POST',
headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
'Referer': url},
callback=self.parse_page,
formdata=self.form_data
)
def parse_page(self, response):
logging.info('parse_page function called on %s', response.url)
from scrapy.shell import inspect_response
inspect_response(response, self)
yield {'data': response.text}