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实现给微信公众号发送消息的方法
Jun 30 Python
python3.6的venv模块使用详解
Aug 01 Python
python 自定义异常和异常捕捉的方法
Oct 18 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
python Gunicorn服务器使用方法详解
Jul 22 Python
基于Python2、Python3中reload()的不同用法介绍
Aug 12 Python
python常见字符串处理函数与用法汇总
Oct 30 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
python正则表达式的懒惰匹配和贪婪匹配说明
Jul 13 Python
python两个list[]相加的实现方法
Sep 23 Python
Python 恐龙跑跑小游戏实现流程
Feb 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
E路文章系统PHP
2006/12/11 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
php设计模式 Chain Of Responsibility (职责链模式)
2011/06/26 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
js 多种变量定义(对象直接量,数组直接量和函数直接量)
2010/05/24 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
JavaScript实现省市联动过程中bug的解决方法
2017/12/04 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
vue better-scroll插件使用详解
2018/01/25 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python thrift搭建服务端和客户端测试程序
2018/01/17 Python
Windows下安装Django框架的方法简明教程
2018/03/28 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
PyQt实现计数器的方法示例
2021/01/18 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
产品推广策划方案
2014/05/10 职场文书
房地产活动策划方案
2014/05/14 职场文书
大学迎新生标语
2014/10/06 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
在职证明格式样本
2015/06/15 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
k-means & DBSCAN 总结
2021/04/27 Python
css样式important规则的正确使用方式
2022/06/10 HTML / CSS