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 random模块常用方法
Nov 03 Python
Python实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
python数据结构之链表详解
Sep 12 Python
python 编写简单网页服务器的实例
Jun 01 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
关于Tensorflow分布式并行策略
Feb 03 Python
Tensorflow限制CPU个数实例
Feb 06 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
Pandas将列表(List)转换为数据框(Dataframe)
Apr 24 Python
python 5个实用的技巧
Sep 27 Python
python中pyplot基础图标函数整理
Nov 10 Python
Python中time与datetime模块使用方法详解
Mar 31 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下通过POST还是GET来传值
2008/06/05 PHP
php中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
10款PHP开源商城系统汇总介绍
2015/07/23 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
ext 同步和异步示例代码
2009/09/18 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
jQuery Selector选择器小结
2010/05/06 Javascript
利用javascript的面向对象的特性实现限制试用期
2011/08/04 Javascript
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
javascript设置文本框光标的方法实例小结
2016/11/04 Javascript
使用Bootstrap + Vue.js实现添加删除数据示例
2017/02/27 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
jQuery实现日历效果
2020/09/11 jQuery
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
简单介绍Python中的RSS处理
2015/04/13 Python
python使用psutil模块获取系统状态
2016/08/27 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
Python更换pip源方法过程解析
2020/05/19 Python
python 利用toapi库自动生成api
2020/10/19 Python
.NET里面什么时候需要调用垃圾回收
2015/06/01 面试题
王老吉广告词
2014/03/20 职场文书
应届生面试求职信
2014/07/02 职场文书
同志主要表现材料
2014/08/21 职场文书
同学会邀请函模板
2015/01/30 职场文书
PHP命令行与定时任务
2021/04/01 PHP
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
面试中老生常谈的MySQL问答集锦夯实基础
2022/03/13 MySQL
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS