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多线程学习资料
Dec 19 Python
Python实现批量下载图片的方法
Jul 08 Python
Python+django实现文件上传
Jan 17 Python
python验证码识别的实例详解
Sep 09 Python
python解析基于xml格式的日志文件
Feb 25 Python
详解python使用Nginx和uWSGI来运行Python应用
Jan 09 Python
python 每天如何定时启动爬虫任务(实现方法分享)
May 21 Python
python实现点对点聊天程序
Jul 28 Python
python实现随机加减法生成器
Feb 24 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
python3.7调试的实例方法
Jul 21 Python
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
Apr 05 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
cache_lite试用
2007/02/14 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
PHP入门教程之数学运算技巧总结
2016/09/11 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
cnblogs csdn 代码运行框实现代码
2009/11/02 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
js 删除数组的几种方法小结
2014/02/21 Javascript
js判断url是否有效的两种方法
2014/03/04 Javascript
JS跨域问题详解
2014/11/25 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
Jquery使用小技巧汇总
2015/12/29 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
prettier自动格式化去换行的实现代码
2020/08/25 Javascript
Python线程中对join方法的运用的教程
2015/04/09 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
python中的colorlog库使用详解
2019/07/05 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
Python中的xlrd模块使用原理解析
2020/05/21 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
德国网上宠物店:Zoobio
2018/05/23 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
医学生实习自荐信
2013/10/01 职场文书
中英双版中文教师求职信
2013/10/27 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
python process模块的使用简介
2021/05/14 Python
pytorch 如何使用float64训练
2021/05/24 Python
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android