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

    如有那里说的不对,请留言,共同进步!!!
  • 相关阅读:
    __doPostBack的使用
    【转】function,new,constructor and prototye
    谈谈一些网页游戏失败的原因到底有哪些?(转)
    全面剖析页游巨头发家史(转)
    2013.02.20开通博客
    老子喜欢的女人
    如何成为强大的程序员?(转)
    注重健康
    学习方法总结
    数据库知识点滴积累
  • 原文地址:https://www.cnblogs.com/qiaoer1993/p/11384679.html
Copyright © 2011-2022 走看看