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中的五种异常处理机制介绍
Sep 02 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
python实现简单登陆流程的方法
Apr 22 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
基于python中theano库的线性回归
Aug 31 Python
python excel转换csv代码实例
Aug 26 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
解决pyecharts运行后产生的html文件用浏览器打开空白
Mar 11 Python
parser.add_argument中的action使用
Apr 20 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
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
PHPMYADMIN 简明安装教程 推荐
2010/03/07 PHP
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
2019/10/21 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
纯javascript模仿微信打飞机小游戏
2015/08/20 Javascript
js实现的后台左侧管理菜单代码
2015/09/11 Javascript
javascript 中的 delete及delete运算符
2015/11/15 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
详解nodejs 文本操作模块-fs模块(二)
2016/12/22 NodeJs
浅谈Vue.js
2017/03/02 Javascript
基于Particles.js制作超炫粒子动态背景效果(仿知乎)
2017/09/13 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
python实现的阳历转阴历(农历)算法
2014/04/25 Python
Python最长公共子串算法实例
2015/03/07 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
利用python求积分的实例
2019/07/03 Python
想学画画?python满足你!
2020/12/24 Python
python 日志模块logging的使用场景及示例
2021/01/04 Python
推荐一些比较有用的css3新属性
2014/11/11 HTML / CSS
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
会计找工作求职信范文
2013/12/09 职场文书
大学校运会广播稿
2014/02/03 职场文书
自我鉴定总结
2014/03/24 职场文书
中秋手机店促销方案
2014/06/16 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
安全生产月标语
2014/10/07 职场文书
运动与健康自我评价
2015/03/09 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
Java对文件的读写操作方法
2022/04/29 Java/Android