第6课:学习用 requests 请求网站,并得到网站数据【免订阅版】

什么是 requests:

requests 中文翻译:请求(Requests) ,那什么是请求呢?字面意义就是 提出要求,希望得到满足。 比如:“张三对李四说,能能去讲台帮我拿一下试卷吗?” 【这一句话理解为:就是张三对李四 发送了一个请求的意思】 而 李四听到张三 这句话后, 【理解为:李四接收到了张三的请求后,开始分析请求,得到请求是帮他去讲台拿一下试卷】 李四走上了讲台,找到了属于张三的试卷,然后走回来把试卷给了张三。

上述那一段举例,就是模拟了请求的过程。同理,我们在网页上 点击输入文字按回车 等操作。都是在向网站发送请求。然后网站根据你的操作的不同,反馈给你结果也是不一样。就好像,张三对李四说 拿下笔,那么李四拿回来的就是笔,张三对李四说 拿下 书包,那么李四拿回来的就是 书包。

为什么我们要在爬虫中用到这个 requests 呢?

因为在Pycharm 或 python IDE 的这种编辑器,不能像浏览器那样,能直接通过鼠标和键盘等人为操作对网站发送 请求。我们只能通过代码去发送请求,来要求网站帮我做什么事。那用什么代码呢?就是用 requests 。

Requests 在python 专业解释:

Requests 是⽤Python语⾔编写,基于urllib,采⽤Apache2 Licensed开源协议的 HTTP 库。它⽐ urllib 更加⽅便,可以节约我们⼤量的⼯作时间,完全满⾜HTTP测试需求。 urilib 库 ,在后续的课程中会详细讲解。

如何安装 requests:

1.在pycharm 中安装 requests ,点击 编辑器工具栏的 File ,再点击 setting … 。

在这里插入图片描述

2 点击Project:xxxxx , 再点击 Project Interpreter 。

在这里插入图片描述
3. 点击 + 号

在这里插入图片描述

4.在输入框中输入 requests , 然后点击 Install Package 。

在这里插入图片描述

此致,reuqests ,就安装好了。

Requests 库的使用:

1.创建一个 python 文件,在 python 文件中写入 以下代码:

#encoding:utf-8

import requests

代码解释:
#encoding:utf-8 ,这个代码是指 python 所写的所有字符编码为 utf-8 ,如下图所示:

在这里插入图片描述

在后面学习写代码的时候,第一句代码必须要加这个哟。

import requests

import requests: 导入 requests 库的意思,在我们需要用到某个模块,包 ,库的时候,就需要用 import 库名称,然后才能使用这个库的功能。就类似生活中,我们开车,那就需要往车里面加(导入 import )汽油,而车,有这个汽油后,才能开。

英文翻译:
import 美 [ˈɪmpɔːrt , ɪmˈpɔːrt] ,v.进口;输入;引进;导入;移入

那么我们怎么使用 requests 来模拟浏览器,去请求网站呢?

我们以 CSDN 这个网站来举例子,CSDN 首页网站是:https://www.csdn.net/ ,代码如下。

#encoding:utf-8

import requests
requests.get("https://www.csdn.net/") # 请求 CSDN 网站

我相信大家已经看到了 ,这句代码: requests.get(“https://www.csdn.net/”) ,在 requests.get(), 括号里面,就是你需要请求的网址。

requests.get() 解释:

大家肯定好奇, requests.get() ,为什么后面还要跟一个 .get() ,在我第一课《第1课:什么是爬虫?什么是Python ?》中 讲到一个 类 和 函数 。 类 中包含多个函数,函数中包含功能,方法等。那 requests 就是一个类,其中的 get() ,就是 requests 类的一个函数,在我们要用 requests 其中一个函数的功能时候,就需要用 . (点) 这个符号去调用出来。所以我们就要写成 requests.get() -----(类 . 函数) 【requests 类 调用使用其中 get 函数功能】,在后面中的学习使用中,我们都需要这样去使用。我在后面课程中就不在讲解为啥要这样了。

requests 类中 ,当然肯定不止 get 这么一个函数了。以下是一个表格,展现了requests 中的重要函数解释:

函数(使用方法)解释
requests.request(url)构造一个请求,支持以下各种方法
requests.get(url) 获取请求html的主要方法 【也是最重要的,后面学习都要用到】
requests.post(url)向html网页提交post请求的方法
requests.head(url)获取html头部信息的主要方法
requests.put(url)向html网页提交put请求的方法
requests.patch(url)向html提交局部修改的请求
requests.delete(url)向html提交删除请求

上述列表中括号中的 url 的意思是 网址 的意思。

什么是网址:

在了解什么网址之前,我们需要了解什么是服务器:
服务器:就是一台计算机,里面存放者网站,数据,图片等等一些数据。和我们生活中用的计算机有什么区别呢?一般我们生活中电脑都叫做客户端计算机。而服务端计算机,就叫服务器,用来服务这些客户端的计算机。目前你只需要这么理解就行。更深层的理解,就不需要了。而服务器的地址我们称为 IP地址 或者 域名

什么是IP地址 什么是IP:

这里要注意的是,IP地址哦,IP和 IP地址是两样的哦,

IP :是 网络之间互连的协议,具体不在详解。感兴趣可以去学习计算机网络基础知识

IP地址 :是互联网协议地址,又译为网际协议地址。在我们上网去访问某个网站,都是先要找到IP地址,才能访问这个网站。在网络中IP地址是以 数字 表示 例如:45.23.11.23 这样的。IP地址分为 内网IP 和 外网IP,什么是内网IP呢,就是私有的IP地址,外面的人是不能进行访问的。外网IP就是公有的,外面的人随便都可以访问。

而我们这里讲的就是外网IP,外网IP就好像你家在某某省某某市某某街道某某小区某某门牌号的地址一样。在浏览器搜索框输入 IP 关键词,就能看到你在网络中的地址什么。你去访问别人记录都是这个地址。

什么是域名:
域名就是 服务器的地址,我们可以把服务器看成一个你住的房子,而域名就是这个你房子的 地址 的 别名,比如叫张三家 。

IP地址 和 域名是什么关系:
在网络中,其实我们服务器的地址都是 IP 地址(类似于:89.24.220.55),IP 地址分为内网 IP地址和外网IP地址,我们能够不受限制 访问的 是 外网IP地址。但是 我们要去访问一个地址,需要记住他的IP地址,太过于难记。所以我们就需要用更简单的方式去记,从而域名诞生了。就像我们人,都有一个身份证,实际身份证号码才是你。但是我们不可能叫你,就叫一串数字,所以我们就取了个名字。叫张三。

什么是网址:

域名是你家的地址,那么网址就是你家厨房,客厅,卫生间,卧室的位置。
域名:https://www.csdn.net/
网址:https://www.csdn.net/nav/python?spm=1000.2115.3001.4125

上述网址中紫色的部位,就是就相当于你家的厨房,客厅,卫生间等位置。
在网站中一般域名的地址,通常是网站的 首页地址,上述紫色部位,就是网站中的一个模块地址,就好像你家的客厅位置。

有些时候,我们通常叫 域名也叫网址。在我们请求网站,请求域名,请求网址,也叫 请求服务器,因为服务器才是网站的本体,也可以叫 访问域名,访问网址,访问服务器。

那么我们请求服务器后,服务器给我们反馈的是什么样子的信息呢?

在我们日常生活中,用电脑的浏览器去访问请求网站,看到都是图片啊,视频啊,文字啊等一些媒体信息。其实实际服务器反馈给浏览器的都是一些代码, 那为什么是图片,视频等媒体信息,是因为浏览器根据代码做了解析,从而给我们展现了可视化的媒体信息。

用 requests.get() , 请求网站 是否成功请求:

在我们请求网站的时候,首先要判断,我是否能成功的访问,这个网站,成功访问后,再去请求这个网站中的数据信息。

代码如下:

#encoding:utf-8

import requests

print(requests.get("https://www.csdn.net/"))

在代码中 ,print() ,就是打印的意思,用来输出我们代码运行的信息。但是我们这样写一个输出信息代码,并不是很美观,所以我们给 requests.get(“https://www.csdn.net/”) 取个requ名字, 这个名字可以随便取,不能数字和一些特殊符号开头,下划线( _ )除外,中文也可以。 。这个名字我们在计算机中叫 变量名,代码如下:

import requests

requ = requests.get("https://www.csdn.net/")
print(requ)

用 = 号,给代码取名字,我们也叫做赋值,你就当 鬼上身附到你身上。requ 就是你(名字), requests.get(“https://www.csdn.net/”) 就是鬼,附到你身上,你就相当于是鬼了。也就是 你等于就是鬼 ,鬼等于就是你 ,所以用等于号 = 。

代码取名 正确和错误 案列:

_sdad = requests.get("https://www.csdn.net/") # 这个是可以的,特殊符号的下划线 可以做开头的变量名。
SAAdad = requests.get("https://www.csdn.net/") # 这个是可以的
中文 = requests.get("https://www.csdn.net/") # 这个是可以的,但不建议取
111sss = requests.get("https://www.csdn.net/") # 这个是不可以的,不能数字开头
%&……%&%111sss = requests.get("https://www.csdn.net/") # 这个是不可以的,不能特殊符号开头

Pycharm 写完代码后,如何运行代码呢?

鼠标右键,你写代码的区域,然后点击,Run 你的python文件名 ,即可运行代码。

在这里插入图片描述

我们运行代码 得到结果如下:

D:\you_names\venv\Scripts\python.exe D:/you_names/第一课学习.py
<Response [200]>

Process finished with exit code 0

我们看到了服务器,给我们反馈了一个 <Response [200]>

Response : 美 [rɪˈspɑːns] 翻译:回答,答复;反应;响应;
200 :这个是HTTP状态码,表示成功的意思。

状态码解释如下:

200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误

从服务器反馈给我们的信息看,就表示 请求成功。

用 requests ,打印输出获取到的请求信息:

在 requests 中可以 调用 .text 和 .content 来输出我们HTML 内容【重要】

requ . text :请求 html 代码内容以字符串形式输出。【重要】
requ . content: 请求 html 代码内容以 二进制形输出。需要解析才能打印出。【重要】

这里的 requ 等于是 requests.get(“https://www.csdn.net/”)
代码如下:

import requests
requ = requests.get("https://www.csdn.net/")
print(requ.text)

也可以这样写:

#encoding:utf-8
import requests
requ = requests.get("https://www.csdn.net/").text
print(requ)

代码整体思路:

前期工具库的导入准备:

1.安装 requests 库,功能:用来请求网站。

2.导入requests

包安装和导入好之后,我们就需要利用 这些 包 来达到我们的目的:

1.请求网站 得到服务器成功的回应 :requ = requests.get(“https://www.csdn.net/”)

2.用 请求得到的回应,打印出内容 :print(requ.text)

本次的 requets 就学到这里啦,如果大家有什么不懂的,可以在评论下留言,我会一一为大家解答。

喜欢的可以点个订阅哟

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宋哈哈呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值