擅长:python、mysql、java
<p>为了避免硬编码<code>headers</code>并使用post请求获取json响应,您可能需要这样做。在</p>
<pre><code>import scrapy
import json
class UnicodonoSpider(scrapy.Spider):
name = "unicodono"
start_urls = ["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="]
purl = 'https://unicodono.com.br/anuncios/itens/ajax?page=3'
def parse(self,response):
cookie = response.headers.getlist('Set-Cookie')[0]
csrf = response.css("meta[name='csrf-token']::attr(content)").get()
yield scrapy.FormRequest(self.purl,headers={"Cookie":cookie,"X-CSRF-TOKEN":csrf},formdata={'orderby':'menor_valor'},callback=self.parse_json)
def parse_json(self,response):
print(json.loads(response.body_as_unicode()))
</code></pre>