Scrapy中构造post请求

 

 

由于在scrapy中使用scrapy.FormRequest方法去进行post请求时特别容易发生各种错误,所以我在进行scrapy的post请求时选用scrapy.Request()方法携带参数进行。

1, 一般情况下requests模块很容易解决的post请求在scrapy中却是困难重重,坑多小心崴脚

Scrapy中构造post请求_第1张图片 requests中post请求

2, 针对headers中的Content-Type: 'application/json',解决办法:

Scrapy中构造post请求_第2张图片 Content-Type: 'application/json',post构造方法

3,针对headers中的Content-Type: application/x-www-form-urlencoded

        使用之前的解决办法一直没能获得想要的响应结果,网上也看到好多博客有写post参数中不能有bool值,不能有数字,尝试了很多种方法还是没能解决,无意间尝试解决了,特来分享给需要的兄弟,不喜勿喷!

        1)用Fiddler抓包获取到post参数 (我正好用fiddler抓包,所以就用fiddler了!)

Scrapy中构造post请求_第3张图片 Fiddler抓包获取到的请求参数

        2)直接将参数复制过来作为字符串传递给post

Scrapy中构造post请求_第4张图片 Content-Type: application/x-www-form-urlencoded中post构造

 

你可能感兴趣的:(python,python爬虫)