2. requests.get()函数访问网页(小白入门)
文章目录
- 2. requests.get()函数访问网页(小白入门)
- 1. 人工访问网页
- 2. 爬虫第一步:发起网络请求
- 3. requests库的安装
- 4. requests.get()函数:发送网络请求
- 5. 代码解析
- 1. 导入库的语法
- 2. 指定网址
- 3. 发送请求
- 4. 输出响应
- 6. 课堂练习
- 1. 访问中国文库网
- 2. 访问优美图库网
- 3. 访问网易云音乐
- 7. 总结
1. 人工访问网页
【人工访问网页】
-
在浏览器中输入网址。
-
回车【Enter】。
-
得到搜索结果。
这个动作其实就是浏览器向网页所在的服务器发送了一个请求。
服务器接收到浏览器的请求后进行处理,返回响应内容,传给浏览器。这个过程我们称之为响应。
最后浏览器再对响应内容进行渲染,将网页呈现了出来。
所以浏览器与服务器之间,是一个先请求,后响应的关系。
2. 爬虫第一步:发起网络请求
【备注】图片来源于风变编程。
爬虫的第一步是获取网页。
获取网页中最关键的一步就是模拟浏览器向服务器发出请求。
Python中有很多库都可以实现向服务器发送请求。
今天,我们先来学习requests库。
3. requests库的安装
requests [rɪˈkwests]:请求;要求。
requests
库是Python的第三方库。
requests库的作用是模拟浏览器向服务器发送网络请求。
第三方库使用前需要安装,安装命令如下:
pip3 install requests
install[ɪnˈstɔːl]:安装。
requests [rɪˈkwests]:请求;要求。
【安装步骤】
-
【win】+【R】打开【运行】。
-
在
【打开(O)】
后的框中输入【cmd】。 -
点击【确定】。
- 在【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
-
import 导入库
-
指定网址
-
发送请求
-
输出响应
下面让我们来运行体验一下调用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。
【调用模块或库中的类、函数、变量的语法】
-
调用模块或库的类:
模块名.类名()
,如 csv.DictReader() -
调用模块或库的函数:
模块名.函数名()
,如 os.mkdir() -
调用模块或库的变量:
模块名.变量名
,如 os.name
这里我们用的是第2种。
-
库名为
requests
。 -
函数名为
get
。 -
参数为
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库官方中文文档网址