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版
Dec 07 Python
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
Python程序员面试题 你必须提前准备!(答案及解析)
Jan 23 Python
python实现批量按比例缩放图片效果
Mar 30 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
对tensorflow中的strides参数使用详解
Jan 04 Python
关于python中的xpath解析定位
Mar 06 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
Python3自定义json逐层解析器代码
May 11 Python
Python 实现 T00ls 自动签到脚本代码(邮件+钉钉通知)
Jul 06 Python
如何利用Python实现一个论文降重工具
Jul 09 Python
浅析Python中的随机采样和概率分布
Dec 06 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
php跨服务器访问方法小结
2015/05/12 PHP
Linux下编译redis和phpredis的方法
2016/04/07 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
PHP实现微信退款功能
2018/10/02 PHP
jQuery登陆判断简单实现代码
2013/04/21 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
Vue服务端渲染和Vue浏览器端渲染的性能对比(实例PK )
2017/03/31 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
[02:54]DOTA2英雄基础教程 撼地者
2014/01/14 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
TensorFlow用expand_dim()来增加维度的方法
2018/07/26 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
python requests证书问题解决
2019/09/05 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
2020/02/17 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
CSS3 :nth-child()伪类选择器实现奇偶行显示不同样式
2013/11/05 HTML / CSS
用CSS3实现瀑布流布局的示例代码
2017/11/10 HTML / CSS
Html5无刷新修改browser Url的方法
2014/01/15 HTML / CSS
美国价格实惠的在线眼镜网站:Zeelool
2020/12/25 全球购物
资深生产主管自我评价
2013/09/22 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
新闻发布会策划方案
2014/06/12 职场文书
2014乡镇干部纪律作风整顿思想汇报
2014/09/13 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
Python基本的内置数据类型及使用方法
2022/04/13 Python