Python requests模块实例用法


Posted in Python onFebruary 11, 2019

1、Requests模块说明

Requests 是使用 Apache2 Licensed 许可证的 HTTP 库。用 Python 编写,真正的为人类着想。

Python 标准库中的 urllib2 模块提供了你所需要的大多数 HTTP 功能,但是它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。

在Python的世界里,事情不应该这么麻烦。

Requests 使用的是 urllib3,因此继承了它的所有特性。Requests 支持 HTTP 连接保持和连接池,支持使用 cookie 保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。现代、国际化、人性化。

2、Requests模块安装

点此下载

然后执行安装

$ python setup.py install

个人推荐使用pip安装

pip install requests

也可以使用easy_install安装

easy_install requests

尝试在IDE中import requests,如果没有报错,那么安装成功。

3、Requests模块简单入门

#HTTP请求类型
#get类型
r = requests.get('https://github.com/timeline.json')
#post类型
r = requests.post("http://m.ctrip.com/post")
#put类型
r = requests.put("http://m.ctrip.com/put")
#delete类型
r = requests.delete("http://m.ctrip.com/delete")
#head类型
r = requests.head("http://m.ctrip.com/head")
#options类型
r = requests.options("http://m.ctrip.com/get")

#获取响应内容
print r.content #以字节的方式去显示,中文显示为字符
print r.text #以文本的方式去显示

#URL传递参数
payload = {'keyword': '日本', 'salecityid': '2'}
r = requests.get("http://m.ctrip.com/webapp/tourvisa/visa_list", params=payload) 
print r.url #示例为http://m.ctrip.com/webapp/tourvisa/visa_list?salecityid=2&keyword=日本

#获取/修改网页编码
r = requests.get('https://github.com/timeline.json')
print r.encoding
r.encoding = 'utf-8'

#json处理
r = requests.get('https://github.com/timeline.json')
print r.json() #需要先import json 

#定制请求头
url = 'http://m.ctrip.com'
headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 4 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19'}
r = requests.post(url, headers=headers)
print r.request.headers

#复杂post请求
url = 'http://m.ctrip.com'
payload = {'some': 'data'}
r = requests.post(url, data=json.dumps(payload)) #如果传递的payload是string而不是dict,需要先调用dumps方法格式化一下

#post多部分编码文件
url = 'http://m.ctrip.com'
files = {'file': open('report.xls', 'rb')}
r = requests.post(url, files=files)

#响应状态码
r = requests.get('http://m.ctrip.com')
print r.status_code
 
#响应头
r = requests.get('http://m.ctrip.com')
print r.headers
print r.headers['Content-Type']
print r.headers.get('content-type') #访问响应头部分内容的两种方式
 
#Cookies
url = 'http://example.com/some/cookie/setting/url'
r = requests.get(url)
r.cookies['example_cookie_name'] #读取cookies
 
url = 'http://m.ctrip.com/cookies'
cookies = dict(cookies_are='working')
r = requests.get(url, cookies=cookies) #发送cookies

#设置超时时间
r = requests.get('http://m.ctrip.com', timeout=0.001)

#设置访问代理
proxies = {
   "http": "http://10.10.10.10:8888",
   "https": "http://10.10.10.100:4444",
   }
r = requests.get('http://m.ctrip.com', proxies=proxies)

xml请求

#!/user/bin/env python
#coding=utf-8
import requests

class url_request():
 def __init__(self):
   """ init """ 

if __name__=='__main__':
 
 headers = {'Content-type': 'text/xml'}
 XML = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><Request xmlns="http://tempuri.org/"><jme><JobClassFullName>WeChatJSTicket.JobWS.Job.JobRefreshTicket,WeChatJSTicket.JobWS</JobClassFullName><Action>RUN</Action><Param>1</Param><HostIP>127.0.0.1</HostIP><JobInfo>1</JobInfo><NeedParallel>false</NeedParallel></jme></Request></soap:Body></soap:Envelope>'
 url = 'http://jobws.push.mobile.xxxxxxxx.com/RefreshWeiXInTokenJob/RefreshService.asmx'
 r = requests.post(url,headers=headers,data=XML)
 #r.encoding = 'utf-8'
 data = r.text
 print data
Python 相关文章推荐
python从sqlite读取并显示数据的方法
May 08 Python
浅谈python中scipy.misc.logsumexp函数的运用场景
Jun 23 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
Python设计模式之代理模式简单示例
Jan 09 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
Dec 04 Python
Python使用pydub库对mp3与wav格式进行互转的方法
Jan 10 Python
在python plt图表中文字大小调节的方法
Jul 08 Python
Django logging配置及使用详解
Jul 23 Python
Python实现Singleton模式的方式详解
Aug 08 Python
wxpython+pymysql实现用户登陆功能
Nov 19 Python
利用python实现后端写网页(flask框架)
Feb 28 Python
说说如何遍历Python列表的方法示例
Feb 11 #Python
python按照多个条件排序的方法
Feb 08 #Python
python 使用pandas计算累积求和的方法
Feb 08 #Python
对Python中的条件判断、循环以及循环的终止方法详解
Feb 08 #Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 #Python
对Python之gzip文件读写的方法详解
Feb 08 #Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 #Python
You might like
FCKeditor的安装(PHP)
2007/01/13 PHP
php两种无限分类方法实例
2015/04/21 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
phpStorm2020 注册码
2020/09/17 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
javascript中的throttle和debounce浅析
2014/06/06 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
使用Python判断IP地址合法性的方法实例
2014/03/13 Python
使用python解析xml成对应的html示例分享
2014/04/02 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
一篇文章快速了解Python的GIL
2018/01/12 Python
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
Python关于拓扑排序知识点讲解
2021/01/04 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
机关党员进社区活动总结
2014/07/05 职场文书
入党团支部推荐意见
2015/06/02 职场文书
六一亲子活动感想
2015/08/07 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
Python 图片添加美颜效果
2022/04/28 Python