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中dictionary items()系列函数的用法实例
Aug 21 Python
python模拟Django框架实例
May 17 Python
Python调用系统底层API播放wav文件的方法
Aug 11 Python
Python实现图片滑动式验证识别方法
Nov 09 Python
Python生成8位随机字符串的方法分析
Dec 05 Python
mac系统安装Python3初体验
Jan 02 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
Python解决八皇后问题示例
Apr 22 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
Nov 19 Python
python装饰器的特性原理详解
Dec 25 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
python实点云分割k-means(sklearn)详解
May 28 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
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php与c 实现按行读取文件实例代码
2017/01/03 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
轻松创建nodejs服务器(2):nodejs服务器的构成分析
2014/12/18 NodeJs
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
jQuery实现标签页效果实战(4)
2017/02/08 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
vue脚手架搭建过程图解
2018/06/06 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
使用React-Router实现前端路由鉴权的示例代码
2020/07/26 Javascript
python抓取网页图片并放到指定文件夹
2014/04/24 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
python调用java的jar包方法
2018/12/15 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
5分钟实现Canvas鼠标跟随动画背景
2019/11/18 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
卫校中专生个人自我评价
2013/09/19 职场文书
专科毕业生就业推荐信
2013/11/01 职场文书
草船借箭教学反思
2014/02/03 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
商业门面租房协议书
2014/11/25 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
初三毕业感言
2015/07/31 职场文书
Sql Server之数据类型详解
2022/02/28 SQL Server
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL