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之一个免费的实验室
Sep 14 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
解决Pycharm无法import自己安装的第三方module问题
May 18 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
对python添加模块路径的三种方法总结
Oct 16 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
详解Python requests 超时和重试的方法
Dec 18 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
如何使用Python处理HDF格式数据及可视化问题
Jun 24 Python
Python Tornado核心及相关原理详解
Jun 24 Python
Python使用内置函数setattr设置对象的属性值
Oct 16 Python
python 如何上传包到pypi
Dec 24 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
PHP源码之explode使用说明
2011/08/05 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
解析php下载远程图片函数 可伪造来路
2013/06/25 PHP
thinkphp模板输出技巧汇总
2014/11/24 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
2016/05/20 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
jquery 回车事件实现代码
2011/08/23 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
JavaScript fontsize方法入门实例(按照指定的尺寸来显示字符串)
2014/10/17 Javascript
javascript生成大小写字母
2015/07/03 Javascript
localResizeIMG先压缩后使用ajax无刷新上传(移动端)
2015/08/11 Javascript
详解Document.Cookie
2015/12/25 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
微信小程序 教程之wxapp视图容器 scroll-view
2016/10/19 Javascript
基于HTML5+JS实现本地图片裁剪并上传功能
2017/03/24 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
python实现识别相似图片小结
2016/02/22 Python
python实现泊松图像融合
2018/07/26 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
PyQt5根据控件Id获取控件对象的方法
2019/06/25 Python
Python中私有属性的定义方式
2020/03/05 Python
python线程里哪种模块比较适合
2020/08/02 Python
Django Model层F,Q对象和聚合函数原理解析
2020/11/12 Python
python3 kubernetes api的使用示例
2021/01/12 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
升国旗演讲稿
2014/09/05 职场文书
学生会个人总结范文
2015/02/15 职场文书
吃通javascript正则表达式
2021/04/21 Javascript