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改变日志(logging)存放位置的示例
Mar 27 Python
pygame学习笔记(5):游戏精灵
Apr 15 Python
在Python的Django框架中实现Hacker News的一些功能
Apr 17 Python
Python中的getopt函数使用详解
Jul 28 Python
python生成密码字典的方法
Jul 06 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
Python设计模式之装饰模式实例详解
Jan 21 Python
Python使用pymongo库操作MongoDB数据库的方法实例
Feb 22 Python
Centos7 下安装最新的python3.8
Oct 28 Python
在python3中使用shuffle函数要注意的地方
Feb 28 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
2015/12/28 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
详解PHP神奇又有用的Trait
2019/03/25 PHP
基于ThinkPHP删除目录及目录文件函数
2020/10/28 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
JavaScript遍历table表格中的某行某列并打印其值
2014/07/08 Javascript
Javascript学习指南
2014/12/01 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
2016/09/21 Javascript
详解NodeJS框架express的路径映射(路由)功能及控制
2017/03/24 NodeJs
微信小程序中添加客服按钮contact-button功能
2018/04/27 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
Python中的startswith和endswith函数使用实例
2014/08/25 Python
python执行get提交的方法
2015/04/29 Python
Python验证企业工商注册码
2015/10/25 Python
python3爬虫怎样构建请求header
2018/12/23 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
Django models filter筛选条件详解
2020/03/16 Python
Python远程方法调用实现过程解析
2020/07/28 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
初中生期末考试的自我评价
2013/12/17 职场文书
大学生求职信范文应怎么写
2014/01/01 职场文书
初中学生期末评语
2014/04/24 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
体育部部长竞选稿
2015/11/21 职场文书
4种非常实用的python内置数据结构
2021/04/28 Python
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server