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 list操作用法总结
Nov 10 Python
Python 爬虫的工具列表大全
Jan 31 Python
深入解答关于Python的11道基本面试题
Apr 01 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
python实现百万答题自动百度搜索答案
Jan 16 Python
解决python文件双击运行秒退的问题
Jun 24 Python
用Python爬取QQ音乐评论并制成词云图的实例
Aug 24 Python
决策树剪枝算法的python实现方法详解
Sep 18 Python
分享PyCharm的几个使用技巧
Nov 10 Python
python实现IOU计算案例
Apr 12 Python
Python使用pyyaml模块处理yaml数据
Apr 14 Python
Python3批量创建Crowd用户并分配组
May 20 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
十天学会php(2)
2006/10/09 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
php中\r \r\n \t的区别示例介绍
2014/02/08 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
Jquery之美中不足小结
2011/02/16 Javascript
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
jquery插件制作 自增长输入框实现代码
2012/08/17 jQuery
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
JavaScript列表框listbox全选和反选的实现方法
2015/03/18 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
JavaScript中的return布尔值的用法和原理解析
2017/08/14 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
2017/11/17 Javascript
vue 根据选择条件显示指定参数的例子
2019/11/09 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
element中Steps步骤条和Tabs标签页关联的解决
2020/12/08 Javascript
Python中的类学习笔记
2014/09/23 Python
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Python3.6简单的操作Mysql数据库的三个实例
2018/10/17 Python
查看端口并杀进程python脚本代码
2019/12/17 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
商铺租房协议书范本
2014/12/04 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
教师理论学习心得体会
2016/01/21 职场文书
班组长如何制订适合本班组的工作计划?
2019/07/10 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL