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中使用Mako模版库的简单教程
Apr 08 Python
Python检测网站链接是否已存在
Apr 07 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
go和python变量赋值遇到的一个问题
Aug 31 Python
Python 使用with上下文实现计时功能
Mar 09 Python
python re库的正则表达式入门学习教程
Mar 08 Python
python Django框架实现web端分页呈现数据
Oct 31 Python
python列表推导式入门学习解析
Dec 02 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
Python机器学习之底层实现KNN
Jun 20 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正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
2012/12/06 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
php探针不显示内存解决方法
2019/09/17 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
AngularJS入门之动画
2016/07/27 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
layui导航栏实现代码
2017/05/19 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
vant-ui AddressEdit地址编辑和van-area的用法说明
2020/11/03 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
Python正则表达式使用经典实例
2016/06/21 Python
Python3.6正式版新特性预览
2016/12/15 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
python实现飞机大战项目
2020/03/11 Python
完美解决pycharm 不显示代码提示问题
2020/06/02 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
师范学院毕业生求职信范文
2013/12/26 职场文书
装饰活动策划方案
2014/02/11 职场文书
毕业设计致谢语
2015/05/14 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL
js基于div丝滑实现贝塞尔曲线
2022/09/23 Javascript