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实现过滤单个Android程序日志脚本分享
Jan 16 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
Python解析并读取PDF文件内容的方法
May 08 Python
对python操作kafka写入json数据的简单demo分享
Dec 27 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
python3.6环境安装+pip环境配置教程图文详解
Jun 20 Python
PYQT5实现控制台显示功能的方法
Jun 25 Python
Python进阶之迭代器与迭代器切片教程
Jan 29 Python
pycharm运行程序时看不到任何结果显示的解决
Feb 21 Python
通过cmd进入python的步骤
Jun 16 Python
深入浅析pycharm中 Make available to all projects的含义
Sep 15 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
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
jQuery 可以拖动的div实现代码 脚本之家修正版
2009/06/26 Javascript
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
jquery实现加载进度条提示效果
2015/11/23 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
使用JS读取XML文件的方法
2016/11/25 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
实例详解JSON取值(key是中文或者数字)方式
2017/08/24 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
微信小程序使用template标签实现五星评分功能
2018/11/03 Javascript
jquery实现Ajax请求的几种常见方式总结
2019/05/28 jQuery
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
python字典的常用操作方法小结
2016/05/16 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
3D动画《斗罗大陆》上线当日播放过亿
2021/03/16 国漫
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
应届生护士求职信
2013/11/01 职场文书
店长职务说明书
2014/02/04 职场文书
收费员岗位职责
2015/02/14 职场文书
行政申诉状范文
2015/05/20 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
创业计划书之健康营养产业
2019/10/15 职场文书
MySQL索引失效的典型案例
2021/06/05 MySQL
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB