`
jianchen
  • 浏览: 344726 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Requests库学习

 
阅读更多

Requests的介绍:

最近在找代码看,在github上找到一个http的库,阅读了一部分api和源代码,此文记录下.

 

在python下,自带了urlib2的类似的库,但是作者觉得写的不好用,不够优雅,于是自己搞了个Requests出来.号称"HTTP FOR HUMAN",哈哈.


看基本的代码,的确要简洁很多.关于对比,在github上有一段有趣的讨论,可以看看.

https://gist.github.com/973705

话说,github是程序员的社区,可以多多关注.

 

文档重要内容记录:

 

文档链接:http://docs.python-requests.org/en/latest/

API:http://docs.python-requests.org/en/latest/api/

大部分看官方文档就可以了,写的很是清楚了.

例子中讲了get,post,options等操作.cookie,response的编码问题.

需要区分response.text和response.content的区别.

A session object has all the methods of the main Requests API.

Sessions can also be used to provide default data to the request methods. 

 

s = requests.Session()
s.auth = ('user', 'pass')
s.headers.update({'x-test': 'true'})

# both 'x-test' and 'x-test2' are sent
s.get('http://httpbin.org/headers', headers={'x-test2': 'true'})
 

Any dictionaries that you pass to a request method will be merged with the session-level values that are set. The method-level parameters override session parameters.

Requests.request方法返回的response对象中包含了创建的request.


通过stream,可以在拿到头的时候,判断是否要继续下载response的body部分.


代理的运用:


使用hook,可以在请求返回时,调用相应的function,这个跟ajax的回调类似.目前支持的钩子仅仅为response(即响应返回时)


自定义认证方式:

Any callable which is passed as the auth argument to a request method will have the opportunity to modify the request before it is dispatched.



作者关于Requests的演讲稿:http://python-for-humans.heroku.com/#1


其他知识点:

在阅读代码过程中,了解如何安装包(用pip或者easy_install命令,会直接下载安装),以及setup.py的作用.

以及__init__.py的作用是:表明此目录应该被作为一个package来处理,对于import很多package很有用.

 

源代码解读:

源代码才看完sessions.py相关的代码.后面等全部看完了,再做个总结.

 

Requests中的关于认证部分:

httpBasicAuth(基本认证):http://zh.wikipedia.org/wiki/HTTP%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%81

HttpDegistAuth(摘要认证):http://zh.wikipedia.org/wiki/HTTP%E6%91%98%E8%A6%81%E8%AE%A4%E8%AF%81


两者的区别是安全性上,前者是提供明文的用户名密码信息.后者使用随机数,MD5加密以及qop等来指定加密级别.在Requests的代码中可以看到是按照该规范来进行实现的.

分享到:
评论

相关推荐

    Python Requests库详解

    Python Requests库是Python编程语言中一个用于发送HTTP请求的第三方库。由于其简单易用的特性,它非常适合网络爬虫初学者使用。...通过学习和使用Requests库,初学者可以在网络爬虫领域迈出扎实的第一步。

    requests库的基本用法.docx

    在自动化学习和测试工程师领域中,Requests 库是一个非常重要的工具。 Requests 库的安装 ----------------- 要使用 Requests 库,首先需要安装它。可以使用 pip 进行安装: ``` pip install requests ``` 安装...

    Python需要的requests库

    python需要的requests库,需要就拿走吧,不用谢,有正在学PYTHON的来一起学习啊

    Python网络爬虫与信息提取 嵩天-Requests库入门01

    通过学习本文介绍的基本概念和方法,你可以快速掌握如何使用Requests库来构建高效的网络爬虫。在实际开发中,还需注意合理设置请求频率、避免被目标网站封禁等问题。希望本文能为你开启Python网络爬虫的大门!

    python学习——爬虫requests库入门学习

    为学习爬虫requests库的同学们,留下的尝试代码。方便大家学习与尝试。

    Requests库爬取个人的所有Git项目

    标题 "Requests库爬取个人的所有Git项目" 描述了如何使用Python中的Requests库来抓取个人在GitHub上的所有项目信息。Requests库是Python中最常用的HTTP客户端库,它使得发送HTTP请求变得异常简单。在这个实验中,...

    python爬虫requests库入门基础

    - **深度学习链接**: 对于希望深入了解requests库的读者,可以参考这篇文章进行深入学习:[https://www.jianshu.com/p/2065f0292de6](https://www.jianshu.com/p/2065f0292de6)。此链接提供了关于requests库更为详尽...

    两万字博文教你python爬虫requests库详解篇.pdf

    掌握 Requests 库是 Python 爬虫学习的重要一环。了解其核心概念和使用方法,可以快速构建高效的网络请求程序。同时,基础的 Python 知识是必不可少的,包括但不限于数据类型、文件操作和异常处理等。通过实践,你...

    爬虫之requests库1

    Requests是Python中一个非常流行的HTTP库,...通过深入学习和实践,你可以利用Requests库轻松地处理各种HTTP任务。为了了解更多详细信息,可以参考Requests的官方文档:https://cn.python-requests.org/zh_CN/latest/。

    跟着崔庆才学爬虫2:requests库的使用

    在这个教程中,我们将会深入学习requests库的核心功能,包括发起GET和POST请求、处理响应、设置请求头、处理cookies以及处理认证等关键知识点。 1. **发起GET请求**:GET是最常见的HTTP请求方法,用于获取资源。在...

    Python与深度学习基础作业1,利用PyQt5,以桌面GUI为载体,requests库为爬虫手段

    Python与深度学习基础作业1,利用PyQt5,以桌面GUI为载体,requests库为爬虫手,_Python_hw1.zip段,_Python_hw1

    Go-Requests是一个易于使用的golangHTTP库与Pythonrequests类似

    Go-Requests库通过封装这些底层功能,使得开发者可以更快速、更直观地完成HTTP请求,降低了学习和使用成本。 Go-Requests的主要特性包括: 1. **简单易用的API**:它提供了与Python requests类似的接口,如Get、...

    使用Python的Requests库和Beautiful Soup库来爬取豆瓣电影Top250的数据

    本教程将详细介绍如何利用Python的Requests库和BeautifulSoup库来爬取豆瓣电影Top250的数据,以便进行数据分析或者建立自己的电影推荐系统。 首先,我们需要了解Requests库。Requests是一个用Python编写的HTTP...

    requests模块下载

    如果你选择下载这个压缩包,你可以获取到 `requests` 的最新源代码,这对于学习、调试或者定制模块功能非常有用。同时,发布者保证压缩包没有后门,用户可以放心使用。 在压缩包中,文件名 "kennethreitz-requests-...

    【接口测试-03课-接口自动化思维梳理及Requests库应用】

    本课程主题“接口测试-03课-接口自动化思维梳理及Requests库应用”旨在帮助学员构建系统的接口测试思路,并深入学习Requests库在实际工作中的应用。 首先,接口测试是一种针对应用程序API(Application Programming...

    Python-pythonrequests源码阅读学习更pythonic的python代码写法

    在Python的世界里,...通过深入研究`requests`库的源码,我们不仅可以了解HTTP通信的细节,还能学习到如何编写更pythonic的代码,提高代码质量和可维护性。对于任何Python开发者来说,这都是一次宝贵的学习机会。

    使用Python中的requests库进行微博热搜数据的采集与分析

    在这篇资源中,我们将介绍如何使用Python中的requests库进行微博热搜数据的采集与分析。通过简单的代码示例,你将了解如何抓取微博热搜的实时数据,以及如何利用Jieba分词库进行文本分析。本文将详细讲解从数据采集...

    requests-py

    在Python的世界里,requests库已经成为了进行网络数据获取的标准工具。 在Python中,内置的urllib系列库虽然可以完成HTTP请求,但其使用相对复杂,而requests库则通过提供更加直观和人性化的接口,降低了网络请求的...

    使用Python的requests库和BeautifulSoup库进行网页爬取的示例案例

    本示例案例将详细介绍如何使用两个流行的Python库——`requests`和`BeautifulSoup`来实现网页抓取。 首先,`requests`库是Python中用于发送HTTP请求的库,它可以方便地获取网页的HTML或JSON等格式的原始数据。安装`...

    Python Requests Essentials高清带书签文字版

    通过这本书的学习,读者不仅可以掌握Requests库的使用,还能深入理解HTTP协议,为进行网络编程和数据抓取打下坚实的基础。同时,高清且带有书签的版本使得学习过程更为高效,可复制的文本则方便了代码实践和笔记整理...

Global site tag (gtag.js) - Google Analytics