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的Urllib库的基本使用教程
Apr 30 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
Python标准库06之子进程 (subprocess包) 详解
Dec 07 Python
python之文件读取一行一行的方法
Jul 12 Python
pycharm运行出现ImportError:No module named的解决方法
Oct 13 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
python查看数据类型的方法
Oct 12 Python
python模拟实现分发扑克牌
Apr 22 Python
django为Form生成的label标签添加class方式
May 20 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
Python中 range | np.arange | np.linspace三者的区别
Mar 22 Python
Django框架中模型的用法
Jun 10 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
DSP接收机前端设想
2021/03/02 无线电
php把数据表导出为Excel表的最简单、最快的方法(不用插件)
2014/05/10 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
PHP制作万年历
2015/01/07 PHP
php输入数据统一类实例
2015/02/23 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
分享别人写的一个小型js框架
2007/08/13 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
node.js超时timeout详解
2014/11/26 Javascript
javascript实现网站加入收藏功能
2015/12/16 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
jQuery中页面返回顶部的方法总结
2016/12/30 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
vue中父子组件传值,解决钩子函数mounted只运行一次的操作
2020/07/27 Javascript
详解Python中的strftime()方法的使用
2015/05/22 Python
在Python的Django框架中更新数据库数据的方法
2015/07/17 Python
OpenCV哈里斯(Harris)角点检测的实现
2020/01/15 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
经济管理专业自荐信
2013/12/30 职场文书
自主实习接收函
2014/01/13 职场文书
小加工厂管理制度
2014/01/21 职场文书
英文商务邀请信
2014/01/22 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
三好学生个人总结
2015/02/15 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
《鸡兔同笼》教学反思
2016/02/19 职场文书
关于mysql中string和number的转换问题
2022/06/14 MySQL
如何利用python创作字符画
2022/06/25 Python