详解Python requests模块


Posted in Python onJune 21, 2021

前言

虽然Python的标准库中 urllib2 模块已经包含了平常我们使用的大多数功能,但是它的 API 使用起来让人感觉不太好,而 Requests 自称 “HTTP for Humans”,说明使用更简洁方便。

Requests 继承了urllib2的所有特性。Requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码。

开源地址:https://github.com/kennethreitz/requests

中文文档 API: http://docs.python-requests.org/zh_CN/latest/index.html

一、GET请求

1.1 最基本的GET请求

# 写法一:
response = requests.get("http://www.baidu.com/")
# 写法二:
# response = requests.request("get", http://www.baidu.com/)

1.2 添加headers和查询参数

如果想添加 headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用 params 参数。

import requests
 
kw = {'wd':'长城'}
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
 
# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)
#查看响应内容,response.text 返回的是Unicode格式的数据
print response.text
#<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer> .....
# 查看响应内容,response.content返回的字节流数据
print respones.content
# 查看完整url地址
print response.url
# http://www.baidu.com/?wd=%E9%95%BF%E5%9F%8E
# 查看响应头部字符编码
print response.encoding
# ISO-8859-1
# 查看响应码
print response.status_code
# 200

二、POST请求

2.1 最基本的POST请求

response = requests.post("http://www.baidu.com/", data = data)

2.2 传入data数据

对于 POST 请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用 data 这个参数。

import requests
 
formdata = {
    "type":"AUTO",
    "i":"i love python",
    "doctype":"json",
    "xmlVersion":"1.8",
    "keyfrom":"fanyi.web",
    "ue":"UTF-8",
    "action":"FY_BY_ENTER",
    "typoResult":"true"
}
 
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
 
headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
 
response = requests.post(url, data = formdata, headers = headers)
print response.text
# {"type":"EN2ZH_CN","errorCode":0,"elapsedTime":2,"translateResult":[[{"src":"i love python","tgt":"我喜欢python"}]],"smartResult":{"type":1,"entries":["","肆文","高德纳"]}}
# 如果是json文件可以直接显示
print response.json()
# {u'errorCode': 0, u'elapsedTime': 0, u'translateResult': [[{u'src': u'i love python', u'tgt': u'\u6211\u559c\u6b22python'}]], u'smartResult': {u'type': 1, u'entries': [u'', u'\u8086\u6587', u'\u9ad8\u5fb7\u7eb3']}, u'type': u'EN2ZH_CN'}

到此这篇关于详解Python requests模块的文章就介绍到这了,更多相关Python requests模块内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在win和Linux系统中python命令行运行的不同
Jul 03 Python
Python实现动态图解析、合成与倒放
Jan 18 Python
JS设计模式之责任链模式实例详解
Feb 03 Python
Python一行代码实现快速排序的方法
Apr 30 Python
浅析Python 引号、注释、字符串
Jul 25 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
使用pandas的box_plot去除异常值
Dec 10 Python
基于python读取.mat文件并取出信息
Dec 16 Python
关于keras中keras.layers.merge的用法说明
May 23 Python
Scrapy模拟登录赶集网的实现代码
Jul 07 Python
Python中用xlwt制作表格实例讲解
Nov 05 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
Python pandas读取CSV文件的注意事项(适合新手)
python简单验证码识别的实现过程
Python pygame实现中国象棋单机版源码
Python并发编程实例教程之线程的玩法
Jun 20 #Python
python迷宫问题深度优先遍历实例
Jun 20 #Python
Python虚拟环境virtualenv是如何使用的
Python机器学习之底层实现KNN
Jun 20 #Python
You might like
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
js以对象为索引的关联数组
2010/07/04 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
JS不间断向上滚动效果代码
2013/12/25 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
Nodejs使用Mongodb存储与提供后端CRD服务详解
2018/09/04 NodeJs
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
通过javascript实现段落的收缩与展开
2019/06/26 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
微信小程序实现图片翻转效果的实例代码
2019/09/20 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
[02:08]2018年度CS GO枪械皮肤设计大赛优秀作者-完美盛典
2018/12/16 DOTA
python 内置函数filter
2017/06/01 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
基于python的Paxos算法实现
2019/07/03 Python
Django单元测试工具test client使用详解
2019/08/02 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
运动会稿件100字
2014/02/21 职场文书
人事专员的岗位职责
2014/03/01 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
负责人任命书范本
2014/06/04 职场文书
人事任命书怎么写
2014/06/05 职场文书
名人演讲稿范文
2014/09/16 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书