02 爬虫步骤1:获取网页
02 requests.get()函数=<Response [200]>=Response对象
1.网络请求
1.1 人工访问网页
当我们访问网站时,首先我们会在浏览器中输入网页链接,然后按回车。
这个动作其实就是浏览器向网页所在的服务器发送了一个请求。
服务器接收到浏览器的请求后进行处理,返回响应内容,传给浏览器。
浏览器再对响应内容进行渲染,将网页呈现了出来。
所以浏览器与服务器之间,是一个先请求,后响应的关系。
2. requests库:发起网络请求
爬虫的第一步是获取网页。
而获取网页中最关键的一步就是模拟浏览器向服务器发出请求。
requests [rɪˈkwests]:请求;要求。
requests 是库名。
requests库的作用:发起各种网络请求。
requests 库是Python 第三方库。
第三方库使用前需要安装,安装命令:
pip3 install requests
【备注】详细安装方法参考笔记《第三方库openpyxl的安装》。
3. requests.get()函数:请求从服务器获取数据
requests 库内置了很多函数来实现各种网络请求:
get函数:请求从服务器获取数据。
post函数:请求向服务器提交数据。
put函数:请求向服务器更新数据。
get[ɡet]:得到。
post[pəʊst]:粘贴,将…入账。
put[pʊt]:写上,印上。
get 是函数名。
get 请求用于从服务器获取数据,是一种比较常用的请求方法。
像我们平时在浏览器中输入网址回车,这便发起了一个 GET 请求。
4. 课堂练习
4.1 requests.get()向百度网页发起网络请求
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
# 下面引号中的内容是百度的网址
url = 'https://www.baidu.com/'
# 调用requests.get(网址)发起网络请求
# 库名.方法名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [200]>
通过上述代码我们就成功发起了一个网络请求。
返回<Response [200]> 表示网络请求成功。
4.2 响应:requests.get()得到一个Response对象
用print(requests.get())打印响应内容。
用type()函数来查看 requests.get() 函数返回结果的类型。
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.baidu.com/'
# 用requests.get(网址)访问网页
# 库名.方法名(要访问的网址)
# 输出响应内容
print(requests.get(url))
#type()函数查看requests.get()函数返回结果的类型
print(type(requests.get(url)))
【终端输出】
<Response [200]>
<class 'requests.models.Response'>
requests.get() 函数返回的结果是一个属于 requests.models.Response 类的对象。
Response 是英文里响应的意思。
Response 对象就是一个包含各种网络请求响应信息的对象。
Response[rɪˈspɒns]:反应 ; 回应 。
用requests.get()函数发起网络请求,得到的是<Response [200],即得到一个Response对象。
注意是得到的是一个类的对象。
一般来说,服务器返回给浏览器的响应内容,主要包含了响应状态码、响应头和响应体等信息。
当服务器收到网络请求时,会返回一个三位数字的代码响应浏览器的请求,表示服务器对于这个请求的响应状态,我们称之为响应状态码。
其中200代表服务器成功处理了请求,即访问网页成功。
当然也有很多其它的响应状态码,之后的笔记再介绍。
5. 拓展练习
5.1 人工访问网页
在浏览器中直接输入网址回车。
5.2 Python访问网页
requests.get(网址)
requests.post(网址)
requests.put(网址)
requests:请求库名。
get/post/put函数名,不同的网站用的请求函数可能不一样。
1.访问百度首页
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.baidu.com/'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
#type()函数查看requests.get()函数返回结果的类型
print(type(requests.get(url)))
【终端输出】
<Response [200]>
<class 'requests.models.Response'>
<Response [200]>请求网页成功。
2.访问中国文库网
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.chinawenwang.com/'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [200]>
<Response [200]>请求网页成功。
3.访问优美图库
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.umei.cc/'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [200]>
<Response [200]>请求网页成功。
4.访问网易云音乐
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://music.163.com/'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [200]>
<Response [200]>请求网页成功。
5.访问中国日报网
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.chinadaily.com.cn/'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [200]>
<Response [200]>请求网页成功。
6.访问豆瓣电影首页
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://movie.douban.com'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [418]>
<Response [418]>表示请求网页不成功。
7.访问知乎首页
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.zhihu.com/'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [403]>
<Response [403]>表示请求网页不成功。
8.访问B站
# 导入访问网页要用的库
import requests
# 申明一个变量存储网址
# 网址是一个字符串变量,注意网址前后都必须有引号
url = 'https://www.bilibili.com/'
# 用requests.get(网址)访问网页
# 库名.函数名(要访问的网址)
print(requests.get(url))
【终端输出】
<Response [403]>
<Response [403]>表示请求网页不成功。