安迪Python

V1

2022/06/15阅读:18主题:默认主题

02 爬虫步骤1:获取网页

02 爬虫步骤1:获取网页

02 requests.get()函数=<Response [200]>=Response对象

1.网络请求

1.1 人工访问网页

当我们访问网站时,首先我们会在浏览器中输入网页链接,然后按回车。
这个动作其实就是浏览器向网页所在的服务器发送了一个请求。

服务器接收到浏览器的请求后进行处理,返回响应内容,传给浏览器。
浏览器再对响应内容进行渲染,将网页呈现了出来。

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

2_浏览器与服务器的网络请求
2_浏览器与服务器的网络请求

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]>表示请求网页不成功。

6. 总结

3_爬虫的步骤
3_爬虫的步骤

分类:

后端

标签:

后端

作者介绍

安迪Python
V1