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中optionParser模块的使用方法实例教程
Aug 29 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
使用python遍历指定城市的一周气温
Mar 31 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
numpy.where() 用法详解
May 27 Python
python excel转换csv代码实例
Aug 26 Python
scikit-learn线性回归,多元回归,多项式回归的实现
Aug 29 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
Pycharm快捷键配置详细整理
Oct 13 Python
Django正则URL匹配实现流程解析
Nov 13 Python
python3代码中实现加法重载的实例
Dec 03 Python
解决numpy和torch数据类型转化的问题
May 23 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木马攻击防御之道
2008/03/24 PHP
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
codeigniter框架批量插入数据
2014/01/09 PHP
PHP实现懒加载的方法
2015/03/07 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
基于jquery的下拉框改变动态添加和删除表格实现代码
2020/09/12 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
2012/03/14 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
jQuery表单域属性过滤器用法分析
2015/02/10 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
基于JavaScript FileReader上传图片显示本地链接
2016/05/27 Javascript
require.js+vue开发微信上传图片组件
2016/10/27 Javascript
bootstrap table分页模板和获取表中的ID方法
2017/01/10 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
微信小程序iBeacon测距及稳定程序的实现解析
2019/07/31 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
Vue-cli3多页面配置详解
2020/03/22 Javascript
Python中asyncore的用法实例
2014/09/29 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
django连接oracle时setting 配置方法
2019/08/29 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
法院实习人员自我鉴定
2013/09/26 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
python 如何做一个识别率百分百的OCR
2021/05/29 Python
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python