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