Python Requests 基础入门


Posted in Python onApril 07, 2016

首先,Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 不友好。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务,所以学习reuqests模块,比较简洁好用(以后慢慢会学习scapy,更强大的库),安装就不用说了

1 导入模块

>>> import requests

2 直观感受一下发送请求的简洁

>>> r = requests.get('your url')

>>> r = requests.post('your url')

#put delete head options方法也是这种用法

3 为url传递参数

>>> url_params = {'key':'value'} #字典传递参数,如果值为None的键不会被添加到url中
>>> r = requests.get('your url',params = url_params)
>>> print(r.url)

your url?key=value

4 响应的内容

>>> r.encoding #获取当前的编码

>>> r.encoding = 'utf-8' #设置编码

>>> r.text #以encoding解析返回内容

>>> r.content #以字节形式(二进制)返回

>>> r.json() #以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常

5 定制头和coookie信息

>>> header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.122 Safari/537.36 SE 2.X MetaSr 1.0'}

>>> cookie = {'key':'value'}

>>> r = requests.get/post('your url',headers=header,cookies=cookie)

6 发送post数据请求

>>> send = {'key':'value'}

>>> r = requests.post('your url',data = send) # 如果你传递一个 string 而不是一个dict ,那么数据会被直接发布出去,这个也可以上传文件

7 响应状态码

>>> r.status_code #如果不是200,可以使用 r.raise_for_status() 抛出异常

8 响应

>>> r.headers #返回字典类型,头信息

# r.requests.headers 返回发送到服务器的头信息

>>> r.cookies #返回cookie

>>> r.history #返回重定向信息,当然可以在请求是加上allow_redirects = false 阻止重定向

9 超时

>>> r = requests.get('url',timeout=1)#设置秒数超时,仅对于连接有效

10 会话对象,让你能够跨请求保持某些参数

>>> s = requests.Session()

>>> s.auth = ('auth','passwd')

>>> s.headers = {'key':'value'}

>>> r = s.get('url')

>>> r1 = s.get('url1')

11 代理

>>> proxies = {'http':'ip1','https':'ip2' }

>>> requests.get('url',proxies=proxies)

三水点靠木推荐阅读:

Python 相关文章推荐
Python处理JSON时的值报错及编码报错的两则解决实录
Jun 26 Python
python实现Adapter模式实例代码
Feb 09 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python中defaultdict与lambda表达式用法实例小结
Apr 09 Python
Python实现矩阵相乘的三种方法小结
Jul 26 Python
Python 处理图片像素点的实例
Jan 08 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 Python
Django ORM 查询管理器源码解析
Aug 05 Python
将matplotlib绘图嵌入pyqt的方法示例
Jan 08 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
python如何正确使用yield
May 21 Python
Python检测网站链接是否已存在
Apr 07 #Python
python多进程共享变量
Apr 06 #Python
python socket多线程通讯实例分析(聊天室)
Apr 06 #Python
python文件的md5加密方法
Apr 06 #Python
python制作爬虫并将抓取结果保存到excel中
Apr 06 #Python
python基于隐马尔可夫模型实现中文拼音输入
Apr 01 #Python
Python使用BeautifulSoup库解析HTML基本使用教程
Mar 31 #Python
You might like
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP框架Swoole定时器Timer特性分析
2014/08/19 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
php身份证号码检查类实例
2015/06/18 PHP
php算法实例分享
2015/07/14 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
JavaScript中的其他对象
2008/01/16 Javascript
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
JS基于正则表达式的替换操作(replace)用法示例
2017/04/28 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
浅谈jquery中ajax跨域提交的时候会有2次请求的问题
2017/11/10 jQuery
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
微信小程序云开发如何使用npm安装依赖
2019/05/18 Javascript
详解python eval函数的妙用
2017/11/16 Python
用python实现的线程池实例代码
2018/01/06 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
django认证系统 Authentication使用详解
2019/07/22 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
python可迭代对象去重实例
2020/05/15 Python
python切割图片的示例
2020/11/12 Python
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
理工大学毕业生自荐信
2013/11/01 职场文书
法人委托书范本
2014/09/15 职场文书
勇敢的心观后感
2015/06/09 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
python 爬取豆瓣网页的示例
2021/04/13 Python
手残删除python之后的补救方法
2021/06/26 Python