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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
python使用点操作符访问字典(dict)数据的方法
Mar 16 Python
Python实现对比不同字体中的同一字符的显示效果
Apr 23 Python
python3.0 模拟用户登录,三次错误锁定的实例
Nov 02 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
python实现数据清洗(缺失值与异常值处理)
Dec 02 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
python 两个一样的字符串用==结果为false问题的解决
Mar 12 Python
用python实现学生管理系统
Jul 24 Python
基于Python实现体育彩票选号器功能代码实例
Sep 16 Python
python热力图实现的完整实例
Jun 25 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实现telnet功能示例
2014/04/08 PHP
php while循环控制的简单实例
2016/05/30 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
Javascript学习笔记4 Eval函数
2010/01/11 Javascript
js获得鼠标的坐标值的方法
2013/03/13 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
nodejs搭建本地服务器并访问文件的方法
2017/03/03 NodeJs
node.js的exports、module.exports与ES6的export、export default深入详解
2017/10/26 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
vue实现可移动的悬浮按钮
2021/03/04 Vue.js
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
详解python调用cmd命令三种方法
2019/07/08 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
python判断正负数方式
2020/06/03 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
销售总监工作职责
2013/11/21 职场文书
英语课外活动总结
2014/08/27 职场文书
市场营销计划书
2015/01/17 职场文书
辞职信怎么写
2015/02/27 职场文书
个人思想政治总结
2015/03/05 职场文书
催款函怎么写
2015/06/24 职场文书
MySQL数据库查询之多表查询总结
2022/08/05 MySQL