大佬的话(一)

关于如何使用Requests

这应该算是最频繁使用的第三方库了,经常写法如下:

而我也这样使用了很长一段时间,直到有一次遇到了一个问题:程序一直卡在这里,没有任务输出,刚开始想是不是headers变了,还是代理又挂了,试了很多遍,发现问题还是没有解决。

去问大佬,大佬轻描淡写的说了一句:加上超时。当时我就明白了,没有设置该请求的超时时间,该请求一直到等待对方响应,对方又不给请求,所以才没有任何输出。

以后,我会在发送每条请求时都加上超时时间,requests就是加timeout

scrapy则是设置DOWNLOAD_TIMEOUT,同时也可以在meta中为指定reques设置,如:

不写回调函数默认是parse

大佬又告诉我,在每个地方使用requests不方便管理,你应该把它封装为一种方法,可以在别的地方调用,形如下:

看到这里,就必须要看下requests的源码,比如最常见的get方法,用到的是request

再看看request,最终还是调用session.request

session.request的可选参数

1. method(必要):方法,get、post、head等

2. url(必要):网址链接

3. params:请求的查询字符串

4. data:发送表单对象

5. headers:HTTP Headers

6. cookies:与Request一起发送的Dict或CookieJar对象

7. files:上传的文件对象

8. auth:HTTP Auth

9. timeout:超时时间

10. allow_redirects:允许重定向。默认True

11. proxies:代理

12. hooks:回调挂钩字典,供内部使用。

13. stream:如果为False,将立即下载响应内容。默认情况下,发出请求时,会立即下载响应正文

14. verify:验证服务器证书,默认为True

15. cert:ssl客户端证书文件

16. json:可以发送json数据

完整代码 [requests源码] ,可以在github上找到

对了,以前一直有疑问,到底是requests.session(),还是requests.Session(),这里已经说的很明白了:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值