python之requests模块详解

2023-11-09

目录

requests使用

requests请求方法

requests响应对象属性


Requests模块是一个用于网络请求的模块,主要用来模拟浏览器发请求。其实类似的模块有很多,比如urllib,urllib2,httplib,httplib2,他们基本都提供相似的功能。但是这些模块都复杂而且差不多过时了,requests模块简单强大高效,使得其在众多网络请求模块中脱引而出。

requests使用

环境安装:pip install requests

使用流程:

  • 指定url
  • 基于requests模块发送请求
  • 获取响应对象中的数据值
  • 持久化存储(不是必须的)

案例:爬取百度首页的数据

#1. 导包
import requests
#2. 指定url
url = "https://www.baidu.com"
#3. 使用GET方法发送请求,该方法会返回一个响应对象
response = requests.get(url=url)
#4. 获取响应数据
print(response.status_code)  # 打印状态码
print(response.url)          # 打印请求url
print(response.headers)      # 打印响应头头信息
print(response.text)         #以文本形式打印网页源码

#保存数据
response.encoding = 'utf-8'  #指定编码格式,不然打开乱码
text = response.text
with open('./2.html','w',encoding='utf-8') as f:
    f.write(text)

解决requests请求的数据中文乱码问题——》requests请求返回内容 中文乱码问题

requests请求方法

上面的案例requests发送了一个GET请求方法,除此之外还有其他的请求方法。最常用的就是GET和POST方法。

  • res = requests.get ()
  • res = requests.post ()
  • res = requests.put ()
  • res = requests.delete ()
  • res = requests.head ()
  • res = requests.options ()

且在指定方法发送请求的时候,有时候还需要在请求方法括号中requests.get(url=url, xx = xx)指定一些参数,如下。先了解一下

方法

参数名字

HTTP头部

headers

GET参数

params

POST参数

data

文件

files

Cookies

cookies

重定向处理

allow_ redirects = False/True

超时

timeout

证书验证

verify = False/True

工作流(延迟下载)

stream=False/ True

事件挂钩

hooks=dict(response=)

身份验证

auth=

代理

proxies=

requests响应对象属性

在上面爬取百度首页时,response = requests.get(url=url)其返回的是一个响应对象,而如果我们想要获取具体的数据比如响应码或者网页源码时,就需要通过指定响应对象的属性进行获取。如response.status_code获取响应码

  • 获取请求url                                   res. url
  • 状态码                                           res. status_code
  • 响应数据(以字符串形式)       res . text 
  • 返回的是一个原生字符串,是bytes类型     res. content
  • 查看服务器响应头                       res. headers
  • 查看cookie                                   res.cookies

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python之requests模块详解 的相关文章

  • Spyder 和 Jupyter 有什么区别?

    我正在学习Python用于数据科学 但我的问题是我仍然不明白Spyder和Jupyter之间的区别 我希望你们能帮助我理解其中的区别 我将不胜感激 以下只是这两个工具的基本摘要 Jupyter 是一个非常流行的用于数据分析的应用程序 它是一
  • c++11 正则表达式比 python 慢

    嗨我想了解为什么以下代码使用正则表达式进行分割字符串分割 include
  • 如何从 Windows 7 PC 上完全卸载 Python 2.7

    从这里安装了Python 2 7 https www python org downloads release python 279 https www python org downloads release python 279 然后我
  • 如何将数据从 JavaScript 发送到 Python

    我正在 jinja2 和 python2 7 上使用 GAE 进行 Web 开发 我可以从Python获取数据 但我无法将数据从 JavaScript 发送到 Python 这是 JavaScript 代码 function toSave
  • 打开文件路径在 python 中不起作用[重复]

    这个问题在这里已经有答案了 我正在编写一个数据库程序 personica 是我的测试主题 我通常在文件路径的位置有一个变量 但出于测试和演示的目的 我只有一个字符串 在我的计算机上的这个确切位置有一个文本文件 顺便说一句 因为我很偏执 所以
  • NLTK:包错误?朋克和泡菜?

    基本上 我不知道为什么会收到此错误 只是为了获得更多图像 这里有一个代码格式的类似消息 由于是最新的 该帖子的答案已经在消息中提到 Preprocessing raw texts LookupError Traceback most rec
  • 如何使用 django Rest 框架保存多对多字段对象

    我有博客 发布 标签三个模型 在博客模型中 我将字段 postedin 作为发布模型的外键 将 标签 作为标签模型的许多字段 模型 py class Posted models Model name models CharField Pos
  • PyQt5 的 OpenGL 模块和版本控制问题(调用不正确的 _QOpenGLFunctions_(ver))

    我一直在努力得到PyQt5 helloGL 示例代码 https github com baoboa pyqt5 blob master examples opengl hellogl py编译 当我尝试构建解决方案时 我得到 Traceb
  • seaborn 箱线图的子图

    我有一个像这样的数据框 import seaborn as sns import pandas as pd pylab inline df pd DataFrame a one one two two one two one one one
  • 我可以在pycharm中的断点处进入交互模式吗

    我是一个相当新的 Pycharm 3 用户 正在从事 django 项目 我可以在 pycharm3 中的断点处进入交互模式吗 这可能吗 当程序在断点处停止时 我尝试过工具 gt 打开调试命令行 但我没有看到控制台打开 我怎样才能让它发挥作
  • 如何检查discord.py中的所有者

    我试图让这个命令只有所有者才能运行它 是否有办法检查服务器的最高角色或创建者 我尝试了 commands is owner 但这仅检查某人是否是机器人的所有者 Guild owner https discordpy readthedocs
  • Python 中的 Firebase 身份验证时出现 KeyError:“databaseURL”

    相信你做得很好 我是 firebase 的新手 正在尝试进行用户身份验证 我已经安装了pyrebase4并在firebase控制台上创建了一个项目 我还启用了使用 电子邮件和密码 登录并尝试连接我的应用程序 下面是我正在尝试的代码 impo
  • 在python中检测按下了哪些键

    我需要知道现在按下的是哪个键 我不想捕获一些特定的按键来触发事件或类似的事情 我想知道现在按下了哪些键并显示它们的列表 我还需要捕获特殊键 如 F1 F12 shift alt home windows 等 基本上是键盘上的所有键 我如何在
  • 如何在 Python 中连接两个列表?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如何在 Python 中连接两个列表 Example listone 1 2 3 lis
  • 获取列的 [0, x] 元素的最小值

    我需要计算一列 其中值是对其他列进行矢量化运算的结果 df new col df col1 min 0 df col2 然而 事实证明我不能像上面的语法一样使用 min 那么 获得 pandas 列的零和给定值之间的最小值的正确方法是什么
  • 启动客户端时,代码要求提供电话/机器人令牌

    使用 Telethon 库运行我的第一个代码时 它要求提供机器人令牌 这是实际的代码 from telethon import TelegramClient events sync api id 1234567 api hash xxxxx
  • 如何单独捕获这些异常?

    我正在编写一个与 Quickbooks 交互的 Python 程序 连接到 Quickbooks 时 根据问题的不同 我可能会遇到以下两个常见异常之一 pywintypes com error 2147352567 Exception oc
  • 如何动态选择要在flask中使用的模板目录?

    默认情况下 Flask 使用存储在 template 目录中的模板文件 flaskapp application py templates hello html 有没有办法根据登录的用户动态选择模板目录 这就是我想要的目录结构 flaska
  • 如何将 Django 数据库中的模板标签解释/渲染为 HTML

    我正在尝试添加带有来自 Django 管理站点的图像的帖子 但安全 自动转义关闭过滤器无法解释 Django 的模板标签 My input and page look like 复制图像地址 给出http 127 0 0 1 8000 7B
  • Hoare Partitioning算法讲解

    根据许多网站给出的伪代码 我写了这个Hoare分区算法 它采用一个数组 根据给定的主元来分区子数组的开始和结束索引 它工作得很好 但是有人可以解释一下逻辑 它是如何做到这一点的吗 这是代码 def hoare arr start end p

随机推荐

  • JPA @Query时,无法使用limit函数原因及解决方案

    前言 使用ssh时 我加入了springdata jpa去查询sql 在 query中使用limit函数时 报错 后来分析原因才知道 springdata jpa的 query中写的sql叫JPQL jpql是不支持limit函数的 而原生
  • ubuntu vsocde 配置 pcl头文件库

    vscode 配置 pcl头文件库 ctrl shift p 输入Edit configuretion 在includePath种添加 usr include pcl 1 8 如果还是没有提示 那么要开启提示 将复选框取消就行 还可以修改提
  • 剑指offer 学习笔记 把字符串转换成整数

    面试题67 把字符串转换成整数 类似atoi函数 把一个字符串转换成一个整数 当输入非法时返回0 为了区分是由于输入0而返回0还是输入非法而返回0 而声明了一个全局变量g nStatus 为了防止溢出 可先将结果存入long long类型中
  • 安装FISCO-BCOS的那些坑

    首先从官网下载源码 git clone https github com FISCO BCOS FISCO BCOS git要是内网的时候可以将源码下载后放到服务器进行解压unzip filename zip 执行build 如果没有安装过
  • vscode使用ssh远程连接服务器时出现timeout情况的解决方法汇总

    背景 mobaxterm通过ssh能正常连接服务器 而在vscode里远程连接服务器时则提示连接超时 解决方法一 win R打开运行命令框 输入cmd打开命令提示符 在下图红圈位置右键然后选择属性 选择取消 使用旧控制台 U 解决方法二 右
  • Visual Studio 2022 include和lib路径问题

    最近安装了Visual Studio 2022 想试下opengl 首先是用cmake尝试编译 结果编译不过 一直报错 LINK fatal error LNK1104 无法打开文件 ucrtd lib 然后我新建了一个工程 导入了glfw
  • Xshell 6安装和使用教程

    作者 翁松秀 Xshell 6安装和使用教程 工欲善其事必先利其器 Xshell 6安装和使用教程 一 XShell 6的安装 二 XShell 6的使用 创建链接 快捷键 主题 三 XFTP的下载和安装 一 XShell 6的安装 到官网
  • 数据挖掘---分类算法之支持向量机SVM

    上篇已经简单的说了下支持向量机的理论 里面有不少公式 需要肯学习的你一步步的推导试一试 说实在的还是挺能考验数学能力的 当年俺老孙就是一步步的推导过 只有这样你才能对这个过程有清晰的认识 才能对这个算法有所体会 下面来举个例子 说说用支持向
  • call、apply和bind的区别

    首先说说call apply和bind的作用吧 它们的作用都是相同的 都是动态的修改当前函数内部环境对象this的指向 call apply和bind区别 相同点 作用相同 都是动态修改this指向 都不会修改原先函数的this指向 异同点
  • 使用学生邮箱注册jetbrains

    1 到 https www jetbrains com zh student 点击申请按钮开始申请 2 在表单上方选择申请方式填写相关信息后提交申请 使用校园邮箱 就是广外邮箱 格式是学号加 gdufs edu cn 例如201810023
  • 二分查找 递归

    碎碎念念 假设我们要在一个升序排序的整型数组中查找某个特定的整数 如果找到了 返回该整数在数组中的索引号 如果没有找到 则返回 1 我们首先看要找的数和数组中间的数的大小关系 如果相等 那么说明找到了 如果要找的数小于数组中间的数 那么我们
  • 由集成运放构成的基本运算电路

    一 比例运算放大器 1 同相比例运算放大器 2 反相比例运算放大器 二 相加器 1 反向相加器 2 同向相加器 3 相减器 根据叠加原理 如上相减器可拆分为如下两个相加器 第一图 第二图 三 积分器 1 简单积分器 2 差动积分器 四 微分
  • 模拟上传文件至服务器(解决socket中read阻塞问题)

    客户端 package cn dali4 code03ex import java io FileInputStream import java io IOException import java io InputStream impor
  • python一行写不下,变多行

    python里一行写不下 拆成多行 和 两种方法 在一行末尾 加上 也就是空格加上 a sdfaf test 注意两个对象都要独立 字符串必须都用双引号引起 如果是if and 后加 其实用括号也可以 比如 a sdfaf test 或者
  • c语言实现学生管理系统,C语言学生管理系统源代码

    C语言学生管理系统源代码 由会员分享 可在线阅读 更多相关 C语言学生管理系统源代码 12页珍藏版 请在人人文库网上搜索 1 C语言学生成绩管理系统源代码 保证能用 include malloc h include stdio h incl
  • 【LVGL 学习】LVGL 在 arduino 环境的安装

    1 前提条件 使用 arduino IDE开发 使用 ESP32 作为主控 屏幕使用 ST7789 驱动 240 240像素TFT屏幕 注意 屏幕驱动部分不再这个赘述 以后开贴另行发布 2 安装 LVGL 库 打开 arduino 菜单栏中
  • 【Python】熵值法计算权重

    Python 熵值法计算权重 将分步骤基于python实现熵值法计算权重 代码在pycharm中执行 文章目录 Python 熵值法计算权重 1 引入库 2 读取数据 3 熵值法主体 4 打印出各指标的权重 5 将结果存储至csv文件中 总
  • 数据库 SQL 遍历父子关系表(二叉树)获得所有子节点 所有父节点

    数据库 SQL 遍历父子关系表 二叉树 获得所有子节点 所有父节点 创建表 Create Table A IDInt fatherIDInt NameVarchar 10 Insert A Select 1 NULL tt Union Al
  • 使用Vector模拟实现STL中的stack

    stack 介绍 栈是一种容器适配器 特别为后入先出而设计的一种 LIFO 那种数据被插入 然后再容器末端取出 栈实现了容器适配器 这是用了一个封装了的类作为他的特定容器 提供了一组成员函数去访问他的元素 元素从特定的容器 也就是堆栈的头取
  • python之requests模块详解

    目录 requests使用 requests请求方法 requests响应对象属性 Requests模块是一个用于网络请求的模块 主要用来模拟浏览器发请求 其实类似的模块有很多 比如urllib urllib2 httplib httpli