1、爬虫的工作原理

获取数据–解析数据–提取数据–存储数据

2、获取数据

本质就是通过URL去向服务器发出请求,服务器再把相关内容封装成一个Response对象返回给我们,这是通过requests.get()实现的。而我们获取到的Response对象下有四个常用的方法(status_code、content、text、encoding)。

3、requests.get()

import requests #引入requests模块

res = requests.get(‘url’) # 向服务器请求数据,服务器返回的结果是个Response对象

print(type(res)) # 终端显示:<class ‘requests.models.Response’>

这代表着res是一个对象,属于requests.models.Response类。

3、response.status_code

用法:print(变量.status_code),

用来检查请求是否正确响应,如果响应状态码为200,即代表请求成功。

响应状态码表示服务器对请求的响应结果。例如,200代表服务器响应成功,403代表禁止访问,404代表页面未找到,408代表请求超时。浏览器会根据状态码做出相应的处理。在爬虫中,可以根据状态码来判断服务器的状态,如果状态码为200,则继续处理数据,否则直接忽略。

4、response.content

response.content能把Response对象的内容以二进制数据的形式返回,适用于图片、音频、视频的下载,示例:

import requests

#图片地址
URL=‘‘https://img1.baidu.com/it/u=2076064484,1314795796&fm=253&fmt=auto&app=120&f=JPEGw=531&h=309’’

发出请求,并把返回的结果放在变量res中

res = requests.get(url)
# 把Reponse对象的内容以二进制数据的形式返回
pic = res.content

# 下载一个图片文件并命名为picture.jpg, 图片内容需要以二进制wb只写。
with open(r’C:UsersAveryDesktop estpicture.jpg’, ‘wb’) as f:

获取pic的二进制内容,写入f

f.write(pic)

这样我们图片就下载成功了!

5、response.text

response.text这个方法可以把Response对象的内容以字符串的形式返回,适用于文字、网页源代码的下载。示例如下:

import requests

文章地址

url = ‘https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md’

发出请求,并把返回的结果放在变量res中

res = requests.get(url)
# 把Response对象的内容以字符串的形式返回
novel = res.text
#打印变量
print(novel[0:170])

6、response.encoding

response.encoding方法,它能帮我们定义Response对象的编码,示例如下:

import requests

文章地址

url = ‘https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md’

发出请求,并把返回的结果放在变量res中

res = requests.get(url)
# 定义response对应的编码为utf-8
res.encoding = ‘utf-8’

把Response对象的内容以字符串的形式返回

novel = res.text

打印变量

print(novel[0:170])

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐