首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
V2EX  ›  Python

scrapy post 怎么发送 json 数据

  •  
  •   mapnaqi · 4 天前 · 523 次点击

    需要带的数据为 data = {"a": [{"b": 'c'}]} 我用的这种写法一直不对, return scrapy.FormRequest( body=json.dumps(data), )

    12 回复  |  直到 2019-02-15 00:26:12 +08:00
        1
    butterfly1211   4 天前
    不需要 json.loads 直接传字典试试
        2
    mapnaqi   4 天前
    试过, 不行, formdata 传字典, 或者 body 传 json 都是 状态码 408 的错误
        3
    butterfly1211   4 天前
    可以试着传一下抓包 body 的截图,如果是"?1=2&3=4"这种的话需要可能需要换个思路
        4
    mapnaqi   4 天前
    @butterfly1211 数据长这个样子, b 是一个编码, 是数字和英文的
    data = {"lineItems": [{"catalogNumber": b}]}
    用 requests 写没问题, 用了 scrapy 就是 408,
        5
    butterfly1211   4 天前
    试一下,request = scrapy.Request( url, method='POST',
    body=json.dumps(my_data),)方式
        6
    airect   4 天前   ♥ 1
    body 里是 json 字符串,headers 中加 Content-Type: application/json
        7
    mapnaqi   4 天前
    @butterfly1211 还是不行
        8
    mapnaqi   4 天前
    408 Request Time-out
        9
    butterfly1211   4 天前   ♥ 1
    FormRequest 中 {‘ key': ‘ value', ‘ k': ‘ v'}会被转化为'key=value&k=v' 并且默认的 method 是 POST,你可以再看一下 body 的原始格式,看是这种 key-value 的形式还是 json 格式在作分析
        10
    cz5424   4 天前 via iPhone
    @mapnaqi 这个提示并不是请求格式的问题吧,自己抓自己包看看
        11
    encro   4 天前
    抓包,或者写一个测试用例接受请求过来的 body 和 head,比较有什么不同,实在不行用 request 替代好了。最新的 request-html 已经自带 html 解析,满足大部分爬虫场景。
        12
    luoleng   1 天前
    formdata=data
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2185 人在线   最高记录 4346   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 04:52 · PVG 12:52 · LAX 20:52 · JFK 23:52
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1