2. requests.get()函数访问网页(小白入门)

news2024/11/29 4:35:50

2. requests.get()函数访问网页(小白入门)

文章目录

  • 2. requests.get()函数访问网页(小白入门)
    • 1. 人工访问网页
    • 2. 爬虫第一步:发起网络请求
    • 3. requests库的安装
    • 4. requests.get()函数:发送网络请求
    • 5. 代码解析
      • 1. 导入库的语法
      • 2. 指定网址
      • 3. 发送请求
      • 4. 输出响应
    • 6. 课堂练习
      • 1. 访问中国文库网
      • 2. 访问优美图库网
      • 3. 访问网易云音乐
    • 7. 总结

1. 人工访问网页

【人工访问网页】

  1. 在浏览器中输入网址。

  2. 回车【Enter】。

  3. 得到搜索结果。

在这里插入图片描述

这个动作其实就是浏览器向网页所在的服务器发送了一个请求。

服务器接收到浏览器的请求后进行处理,返回响应内容,传给浏览器。这个过程我们称之为响应。

最后浏览器再对响应内容进行渲染,将网页呈现了出来。

所以浏览器与服务器之间,是一个先请求,后响应的关系。

在这里插入图片描述

2. 爬虫第一步:发起网络请求

在这里插入图片描述

【备注】图片来源于风变编程。

爬虫的第一步是获取网页。

获取网页中最关键的一步就是模拟浏览器向服务器发出请求。

Python中有很多库都可以实现向服务器发送请求。

今天,我们先来学习requests库。

3. requests库的安装

requests [rɪˈkwests]:请求;要求。

requests库是Python的第三方库。

requests库的作用是模拟浏览器向服务器发送网络请求。

第三方库使用前需要安装,安装命令如下:

pip3 install requests  

install[ɪnˈstɔːl]:安装。

requests [rɪˈkwests]:请求;要求。

【安装步骤】

  1. 【win】+【R】打开【运行】。

  2. 【打开(O)】后的框中输入【cmd】。

  3. 点击【确定】。

在这里插入图片描述

  1. 在【cmd.exe】中输入如下命令:
pip3 install requests  

命令输入后点击回车。

我的安装后出现如下提示语句:

在这里插入图片描述

【提示语句1】

[notice] A new release of pip is available: 23.0.1 -> 23.1.2

翻译为注意pip的新版本可用:23.0.1 -> 23.1.2

【提示语句2】

[notice] To update, run: python.exe -m pip install --upgrade pip

翻译为[注意]要进行更新,请运行:python.exe-m pip安装-升级pip

【解决办法】

在【cmd.exe】中输入如下命令更新pip库。

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ --upgrade pip 

pip更新完毕后,在输入一次pip3 install requests就能完成安装。

在这里插入图片描述

第三方库的安装可参考基础语法笔记第73、74节:

73.python第三方库安装教程

74. 'pip’不是内部或外部命令,也不是可运行的程序-解决办法

除了上述安装方法,还有其他安装方法。

更多详细的安装说明可参考崔庆才的个人站点https://setup.scrape.center/requests

崔庆才的个人站点:requests的安装

清华大学开源软件镜像站网址:https://mirrors.tuna.tsinghua.edu.cn/help/pypi

清华大学开源软件镜像站

4. requests.get()函数:发送网络请求

根据代码书写步骤,我将获取网页分为4个步骤:

【准备工作】

pip3安装Python的requests

  1. import 导入库

  2. 指定网址

  3. 发送请求

  4. 输出响应

下面让我们来运行体验一下调用requests.get()函数发起网络请求。

【目标任务】

向百度首页https://www.baidu.com/发起网络请求。

【代码示例】

# 1.导入库
import requests

# 2.定义url
url = 'https://www.baidu.com/'

# 3.发送请求,并把响应结果赋值给变量r
r = requests.get(url)  

# 4.打印响应内容
print(r)

【终端输出】

<Response [200]>

requests库中内置了很多函数来帮我们实现各种网络请求。

像requests.get()就是requests库中用来发起get请求的函数。

get请求用于从服务器获取数据,是一种比较常用的请求方法,像我们平时在浏览器中直接输入网址回车,这便发起了一个get请求。

5. 代码解析

1. 导入库的语法

使用Python的库或模块,一开始需要导入该库或该模块。

【导入语法】

import+模块名

【代码示例】

# 1.导入库
import requests

【温馨提示】

注意这里的requests库名最后是有一个s的,不用错写成request

2. 指定网址

# 2.定义url
url = 'https://www.baidu.com/'

url是我起的变量名,变量名根据你自己的喜好命名即可。

url是一个字符串类型的变量,里面的内容就是我们要访问的网址。

【温馨提示】

注意网址前后需要加英文引号''

3. 发送请求

r = requests.get(url) 

调用requests的get()方法,向服务器发送请求。

然后将响应结果返回给变量r。

【调用模块或库中的类、函数、变量的语法】

  1. 调用模块或库的类:模块名.类名(),如 csv.DictReader()

  2. 调用模块或库的函数:模块名.函数名(),如 os.mkdir()

  3. 调用模块或库的变量:模块名.变量名,如 os.name

这里我们用的是第2种。

  1. 库名为requests

  2. 函数名为get

  3. 参数为url

【温馨提示】

注意库名和方法名之间有一个英文小圆点.

4. 输出响应

我们发送完请求后,服务器返回的内容存储在了变量r中。

那r是个什么东西呢,我们用type函数来查看。

# 1.导入库
import requests

# 2.定义url
url = 'https://www.baidu.com/'

# 3.发送请求,并把响应结果赋值给变量r
r = requests.get(url)  

# 4.1 查看返回值
print(r)

# 4.2 查看r的类型
print(type(r))

【终端输出】

<Response [200]>
<class 'requests.models.Response'>

【返回值】

<Response [200]>

返回<Response [200]>表示请求网络成功。

这里的200根据实际访问情况也可能是其他数值,以后再做说明。

【返回类型】

<class ‘requests.models.Response’>

表示返回的是返回的是一个Response对象。

response[rɪˈspɒns]:响应。

可以理解成返回的是一个响应对象。

Response对象里存储着很多信息。

通过查看Response对象的属性,可以输出网页的文本信息、有响应的状态码等等。

6. 课堂练习

1. 访问中国文库网

# 1.导入库
import requests

# 2.定义url
url = 'https://www.chinawenwang.com/'

# 3.发送请求,并把响应结果赋值给变量r
r = requests.get(url)  

# 4.1 查看返回值
print(r)

# 4.2 查看r的类型
print(type(r))

【终端输出】

<Response [200]>
<class 'requests.models.Response'>

只要返回<Response [200]>就表示爬虫程序访问网页成功。

2. 访问优美图库网

# 1.导入库
import requests

# 2.定义url
url = 'https://www.umei.cc/'

# 3.发送请求,并把响应结果赋值给变量r
r = requests.get(url)  

# 4.1 查看返回值
print(r)

# 4.2 查看r的类型
print(type(r))

【终端输出】

<Response [200]>
<class 'requests.models.Response'>

<Response [200]>请求网页成功。

3. 访问网易云音乐

# 1.导入库
import requests

# 2.定义url
url = 'https://music.163.com/'

# 3.发送请求,并把响应结果赋值给变量r
r = requests.get(url)  

# 4.1 查看返回值
print(r)

# 4.2 查看r的类型
print(type(r))

【终端输出】

<Response [200]>
<class 'requests.models.Response'>

Python的Requests库官方中文文档网址:http://cn.python-requests.org/zh_CN/latest/

Python的Requests库官方中文文档网址

7. 总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/607149.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python取消撤销——让你的代码更加高效

Python取消撤销——让你的代码更加高效 在Python编程的过程中&#xff0c;经常会出现需要撤销操作的场景。但是&#xff0c;在一些复杂的代码编辑器中&#xff0c;常规的CtrlZ撤销操作可能无法满足你对代码精度的要求。为此&#xff0c;Python取消撤销就应运而生。 Python取消…

多变量系统的最小二乘辨识问题的推导以及matlab仿真

1.单输入单输出情况的推导;2.两输入两输出情况的推导,并进行matlab仿真以及完成仿真报告。 多变量系统的最小二乘辨识问题是确定一个线性多输入多输出(MIMO)系统的未知参数,使得该系统能够以最佳方式近似给定输入和输出之间的关系。在本例中,我们将展示单输入单输出(SIS…

软件外包开发的测试用例

软件测试用例是一组详细的步骤、输入数据、预期结果和实际结果&#xff0c;用于验证软件是否满足特定需求或功能。编写测试用例的目的是确保软件的质量和性能。今天和大家分享编写软件测试用例的一般步骤&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;…

解决record on line 2: wrong number of fields

背景 基于"encoding/csv"库解析。 共解析多个文档&#xff0c;只有这一个解析有问题&#xff0c;所用代码一致&#xff0c;进行比较后 发现该文档和其它文档不同&#xff0c;其它文档是第一行就是列名&#xff0c;下面都是数据&#xff1b; 而这个文档前两行有数据且…

k8s部署Elasticsearch集群+Kibana方案--开启X-Pack 安全认证

前言 本文中使用StatefulSet 方式部署 Elasticsearch 集群&#xff0c;并且开启X-Pack 安全认证&#xff0c;存储使用的是NFS&#xff0c;属于一个初学者自己探索的方案&#xff0c;如果有比较好的方案&#xff0c;还请不吝评论赐教。 版本说明&#xff1a; Kubernetes v1.25…

微信小程序uniapp医患管理系统预约挂号就诊处方满意评价系统

从系统开发环境、系统目标、设计流程、功能设计等几个方面对系统进行了系统设计。开发出本医患关系管理系统&#xff0c;主要实现了管理员后端&#xff1b;首页、个人中心、用户管理、医生管理、医生信息管理、患者信息管理、预约就诊管理、就诊信息管理、投诉管理、投诉反馈管…

【走进Linux的世界】Linux---基本指令(2)

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【Linux专栏】&#x1f388; 本专栏旨在分享学习Linux的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 目录 ls *man指令小…

redis缓存穿透、缓存雪崩 、缓存击穿

一、缓存穿透、缓存雪崩 、缓存击穿 摘自尚硅谷文档 1、缓存穿透 缓存穿透是指查询一个一定不存在的数据&#xff0c;由于缓存是不命中&#xff0c;将去查询数据库&#xff0c;但是数 据库也无此记录&#xff0c;我们没有将这次查询的 null 写入缓存&#xff0c;这将导致这个…

Spin加载中(antd-design组件库)loading效果简单使用

1.Spin加载中 用于页面和区块的加载中状态。 2.何时使用 页面局部处于等待异步数据或正在渲染过程时&#xff0c;合适的加载动效会有效缓解用户的焦虑。 组件代码来自&#xff1a; 加载中 Spin - Ant Design 3.本地验证前的准备 参考文章【react项目antd组件-demo:hello-world_…

PyTorch深度学习实战(2)——PyTorch基础

PyTorch深度学习实战&#xff08;2&#xff09;——PyTorch基础 0. 前言1. 搭建 PyTorch 环境2. PyTorch 张量2.1 张量初始化2.2 张量运算2.3 张量对象的自动梯度计算 3. PyTorch 张量相对于 NumPy 数组的优势小结系列链接 0. 前言 PyTorch 是广泛应用于机器学习领域中的强大开…

AutoHotKey脚本初步:判断和选择

文章目录 脚本基础连击识别setTimer判断和选择 脚本基础 尽管通过窗口识别与按键映射&#xff0c;就可以胜任很多工作了&#xff0c;但AutoHotKey仍提供了一些简单的编程功能&#xff0c;对一些稍微复杂的任务&#xff0c;也可以做到得心应手。但要注意一点&#xff0c;AHK的V…

【操作系统】Linux 中的 Page Cache

【操作系统】Linux 中的 Page Cache 参考资料&#xff1a; 文件 I/O 简明概述 - page cache 进程写文件时&#xff0c;进程发生了崩溃&#xff0c;已写入的数据会丢失吗&#xff1f; Linux Page Cache 调优在 Kafka 中的应用 【操作系统】一文带你深入浅出零拷贝技术 【操作系…

大数据Doris(三十四):Doris配置Spark与Yarn

文章目录 Doris配置Spark与Yarn 一、Doris配置Spark 1、配置 SPARK_HOME 环境变量 2、配置SPARK 依赖包

JavaScript之BOM(八)

JavaScript之BOM 1、BOM中的对象2、window对象2.1、简介2.2、常用的属性与方法2.3、常用的事件2.4、定时器和延时器 3、navigator 常用属性与方法4、history 常用属性与方法5、location 常用属性与方法 BOM&#xff1a;浏览器对象模型&#xff08;Browser Object Model&#xf…

交直流系统潮流计算及相互关联特性分析(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

chatgpt赋能python:Python取消合并单元格

Python取消合并单元格 在Excel中&#xff0c;合并单元格是一个非常常见的操作&#xff0c;它可以将多个单元格合并成一个单元格。这样可视化效果会更好&#xff0c;但是实际上会影响数据的计算和操作。如果你想取消这个操作&#xff0c;手工操作可能会非常费时间。不过&#x…

chatgpt赋能python:Python变量赋值

Python 变量赋值 在 Python 中&#xff0c;我们可以使用多种符号来给变量赋值。本文将介绍这些符号以及它们在编程中的应用。 等号&#xff08;&#xff09; 在 Python 中&#xff0c;我们最常用的符号是等号&#xff08;&#xff09;&#xff0c;它可以将一个值赋给一个变量…

Image fusion based on generative adversarial network consistent with perception

1.摘要 深度学习是红外和可见光图像融合领域中快速发展的方法。在这个背景下&#xff0c;密集块在深层网络中的使用显著提高了浅层信息的利用率&#xff0c;并且生成对抗网络&#xff08;GAN&#xff09;的组合也提高了两个源图像的融合性能。我们提出了一种基于密集块和GAN的…

“吴军讲ChatGPT“课程的个人总结

人工智能时代, ChatGPT如此火热, 大家恐慌, 焦虑, 大家最关注的是两个问题 我会不会被取代?我有没有机会? 吴军老师(浪潮之巅, 数学之美等), 有门课程, <吴军讲ChatGPT>, 用通俗易懂的语言, 讲解了人工智能的技术原理前世今生,以及当下火热的ChatGPT的可以做什么, 那…

关于windows驱动中断的几个小问题

1. intel 8259芯片中的IRQ2和int2的区别是什么&#xff1f; 答曰&#xff1a;IRQ2是芯片上的引脚&#xff0c;而int2是中断向量表的第2项&#xff0c;两者有很大区别。 Intel8259A芯片的中断引脚分别为&#xff1a; 主片&#xff1a; 0&#xff1a;8254时钟 1&#xff1a;键盘 …