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的几条建议分享
Feb 10 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
Python numpy 点数组去重的实例
Apr 18 Python
Python异常的检测和处理方法
Oct 26 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
详解pyinstaller selenium python3 chrome打包问题
Oct 18 Python
python tkinter控件布局项目实例
Nov 04 Python
python3 简单实现组合设计模式
Jul 02 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
如何用python实现一个HTTP连接池
Jan 14 Python
使用python如何删除同一文件夹下相似的图片
May 07 Python
Python可视化神器pyecharts之绘制地理图表练习
Jul 07 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 attributes()函数讲解
2019/02/03 PHP
PHP 出现 http500 错误的解决方法
2021/03/09 PHP
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
python多进程操作实例
2014/11/21 Python
python正则表达式match和search用法实例
2015/03/26 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
2016/03/13 Python
Python+matplotlib实现填充螺旋实例
2018/01/15 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
windows系统中Python多版本与jupyter notebook使用虚拟环境的过程
2019/05/15 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
Python使用py2neo操作图数据库neo4j的方法详解
2020/01/13 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
捷克家居装饰及图书音像购物网站:Velký košík
2018/04/16 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
餐饮业的创业计划书范文
2013/12/26 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
中学运动会广播稿
2014/01/19 职场文书
人事专员职责
2014/02/22 职场文书
2014年国庆节寄语
2014/09/19 职场文书
小学班主任事迹材料
2014/12/17 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
用Python提取PDF表格的方法
2021/04/11 Python