详解Python requests模块

作者:酒酿小圆子~ 时间:2021-12-31 21:55:12 

前言

虽然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'}

来源:https://blog.csdn.net/u012856866/article/details/117929358

标签:Python,requests,模块
0
投稿

猜你喜欢

  • Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】

    2022-07-06 16:40:59
  • 如何使用ASP实现网站的“目录树”管理

    2008-06-13 06:39:00
  • 基于Python的身份证验证识别和数据处理详解

    2021-04-22 04:43:09
  • python-pymysql获取字段名称-获取内容方式

    2024-01-21 05:19:44
  • asp如何创建Word 文件?

    2009-11-14 20:47:00
  • Python利用Turtle绘制Technoblade的示例代码

    2023-08-23 22:43:01
  • vue项目中form data形式传参方式

    2024-04-30 10:25:48
  • 使用css给图片添加阴影入门篇

    2009-07-06 14:38:00
  • 利用Python实现朋友圈中的九宫格图片效果

    2023-07-31 01:37:22
  • pycharm中创建sql文件及模板的过程

    2021-10-01 14:50:51
  • python实现Adapter模式实例代码

    2021-10-20 00:43:02
  • Python采用raw_input读取输入值的方法

    2021-09-08 03:19:05
  • Python实战之基于OpenCV的美颜挂件制作

    2022-08-30 20:46:30
  • 成功实现ajax,xmlhttp跨域访问(php,asp,jsp)

    2008-02-13 18:40:00
  • CTF中的PHP特性函数解析之下篇

    2023-06-14 09:54:52
  • ASP连接Oracle数据库的例子

    2007-10-02 12:44:00
  • python 操作 mongodb 数据库详情

    2024-01-19 17:53:45
  • Python中ttkbootstrap的介绍与基本使用

    2023-08-23 15:57:01
  • 自己用的ASP分页函数

    2009-10-18 11:30:00
  • Go语言pointer及switch fallthrough实战详解

    2024-05-09 14:55:07
  • asp之家 网络编程 m.aspxhome.com