zoukankan      html  css  js  c++  java
  • scrapy和requests的post请求详解

    scrapy.Request(url=url,method="POST",body=formdata,cookies=self.cookie,headers=self.headers,callback=self.get_goods_list)
    1、scrapy框架发送post请求有两种格式
    (1)、scrapy.FormRequest(url=url,formdata=formdata,cookies=self.cookie,headers=self.headers,callback=self.get_goods_list),这里的formdata是dict格式的,里面不能存在数字,如果有数字用引号括起来;
    (2)、scrapy.Request(url=url,method="POST",body=formdata,cookies=self.cookie,headers=self.headers,callback=self.get_goods_list),这里的formdata必须得是字符串,如果是表单格式,那么需要用json.dumps()转为字符串格式;

    2、requests发送post请求,传递的参数也分两种格式(data和json)
    (1)、requests.post(url, data=json.dumps(formdata)),这里面的data用的必须是字符串类型,如果formdata是一个表单(字典),那么用json.dumps(formdata)转化为字符串;
    (2)、
    requests.post(url, json=formdata),这里面的formdata就必须是表单格式(字典),如果字典用format添加元素了,那么就会变成字符串,这时就需要用evel从字符串转化为字典(eval('{"orderby": "0","productTypeId": "%s","currentPage": "%s","pageSize": "12"}' %(id,i))),然后传递到data。

    总结,有时候我们用requests请求能拿到的数据,但是用
    scrapy.FormRequest()怎么也拿不到数据,这个时候就需要用scrapy.Request()来发送请求,scrapy.Request()请求与requests.post()请求用法相同,得到的数据也是相同的。
    参考资源:https://www.jb51.net/article/146769.htm

    如有那里说的不对,请留言,共同进步!!!
  • 相关阅读:
    swift网络数据请求方法
    使用jQuery在javascript中自定义事件
    javascript循环事件只响应最后一次的问题处理
    关于PHP 时区错误的问题
    安装MySql出现Error Nr.1045的解决办法
    view的阴影效果shadowColor
    关于Swift中的泛函数find的问题
    [BZOJ3196][Tyvj1730]二逼平衡树
    [BZOJ4671]异或图
    [BZOJ4621]Tc605
  • 原文地址:https://www.cnblogs.com/qiaoer1993/p/11384679.html
Copyright © 2011-2022 走看看