需要带的数据为 data = {"a": [{"b": 'c'}]} 我用的这种写法一直不对, return scrapy.FormRequest( body=json.dumps(data), )
1
butterfly1211 2019-02-11 15:14:52 +08:00
不需要 json.loads 直接传字典试试
|
2
mapnaqi OP 试过, 不行, formdata 传字典, 或者 body 传 json 都是 状态码 408 的错误
|
3
butterfly1211 2019-02-11 15:22:11 +08:00
可以试着传一下抓包 body 的截图,如果是"?1=2&3=4"这种的话需要可能需要换个思路
|
4
mapnaqi OP @butterfly1211 数据长这个样子, b 是一个编码, 是数字和英文的
data = {"lineItems": [{"catalogNumber": b}]} 用 requests 写没问题, 用了 scrapy 就是 408, |
5
butterfly1211 2019-02-11 15:30:09 +08:00
试一下,request = scrapy.Request( url, method='POST',
body=json.dumps(my_data),)方式 |
6
airect 2019-02-11 15:33:27 +08:00 1
body 里是 json 字符串,headers 中加 Content-Type: application/json
|
7
mapnaqi OP @butterfly1211 还是不行
|
8
mapnaqi OP 408 Request Time-out
|
9
butterfly1211 2019-02-11 15:46:14 +08:00 1
FormRequest 中 {‘ key': ‘ value', ‘ k': ‘ v'}会被转化为'key=value&k=v' 并且默认的 method 是 POST,你可以再看一下 body 的原始格式,看是这种 key-value 的形式还是 json 格式在作分析
|
11
encro 2019-02-12 12:31:51 +08:00
抓包,或者写一个测试用例接受请求过来的 body 和 head,比较有什么不同,实在不行用 request 替代好了。最新的 request-html 已经自带 html 解析,满足大部分爬虫场景。
|
12
luoleng 2019-02-15 00:26:12 +08:00
formdata=data
|