繁体   English   中英

如何在FormRequest上指定“ Content-Type”和“ Accept”?

[英]How to specify the “Content-Type” and “Accept” on FormRequest?

使用RequestForm ,我需要指定Content-Type为application/json; charset=UTF-8 application/json; charset=UTF-8并且Accept是*/* 这个怎么做?

目前,我的代码如下所示:

yield scrapy.FormRequest(url='...',
                         formdata={
                             ...
                         },
                         cookies={...},
                         callback=self.parse_second)

使用浏览器,请求为:

POST /PaginasPublicas/_SBC.aspx/pesquisaLoteIntegracaoTPCL HTTP/1.1
Host: geosampa.prefeitura.sp.gov.br
Connection: keep-alive
Content-Length: 118
Accept: */*
Origin: http://geosampa.prefeitura.sp.gov.br
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36
Content-Type: application/json; charset=UTF-8
Referer: http://geosampa.prefeitura.sp.gov.br/PaginasPublicas/_SBC.aspx
Accept-Encoding: gzip, deflate
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4,ar;q=0.2,de;q=0.2,es;q=0.2,fr;q=0.2,it;q=0.2,ja;q=0.2,pl;q=0.2,tr;q=0.2,zh-TW;q=0.2
Cookie: ASP.NET_SessionId=bvvghxvsxgwzuyaudsqn5m5q

您的请求应如下所示:

yield FormRequest(..., headers={'Content-Type': 'application/json','charset':'UTF-8'})

Scrapy请求具有一个字段标头 ,用于定义显式标头。 这将为您工作。

yield scrapy.FormRequest(url='...',
                     formdata={
                         ...
                     },
                     cookies={...}, headers={'Content-Type': 'application/json','charset':'UTF-8'},
                     callback=self.parse_second)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM