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基础教程之基本内置数据类型介绍
Feb 20 Python
Python发送Email方法实例
Aug 21 Python
Python实现获取某天是某个月中的第几周
Feb 11 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
简单谈谈python基本数据类型
Sep 26 Python
Python3.0 实现决策树算法的流程
Aug 08 Python
Python实现非正太分布的异常值检测方式
Dec 09 Python
Pytorch模型转onnx模型实例
Jan 15 Python
Python logging日志模块 配置文件方式
Jul 12 Python
python动态规划算法实例详解
Nov 22 Python
Python页面加载的等待方式总结
Feb 28 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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
Syphon 使用方法
2021/03/03 冲泡冲煮
一段防盗连的PHP代码
2006/12/06 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
【消息提示组件】,兼容IE6/7&&FF2
2007/09/04 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
python中精确输出JSON浮点数的方法
2014/04/18 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
python列表生成器迭代器实例解析
2019/12/19 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
自荐书范文
2013/12/08 职场文书
市场总经理岗位职责
2014/04/11 职场文书
小学生期末评语
2014/04/21 职场文书
广播体操口号
2014/06/18 职场文书
社区综治宣传月活动总结
2014/07/02 职场文书
党员贯彻十八大精神思想汇报范文
2014/10/25 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server
Python 统计序列中元素的出现频度
2022/04/26 Python