爬虫的基础
爬虫(网络数据采集):按照程序员的想法,由程序员自定义规则编写程序批量的爬取数据(图片、音频、视频、数据等)
爬虫的流程:
1.解析HTML页面。
2.根据前端的语法或者正则表达式提取数据。
3.保存数据。
需要的库
requests、urllib、selenium、playwariter等
requests:通过网址向服务器发送请求,等待服务器的响应结果。
下载
pip/pip3 install requests
这里举例为B站
import requests
URL = 'https://www.bilibili.com/'
# 向b站发送请求,获取b站服务器的响应结果
response = requests.get(url=URL)
print(response)
# 查看状态码
print(response.status_code)
# 出现乱码后
response.encoding = 'gbk'
# text:页面源代码(字符串类型查看)
print(response.text, type(response.text))
print(response.content)
status_code:状态码 --> 判断服务器和网页的状态
200:表示程序和服务器正常通信
403:表示服务器理解客户端的请求,但是拒绝了客户端的请求。
404:网页丢失
500:服务器崩溃
出现乱码后
如果网页发生乱码,只需要根据页面指定编码方式解码即可
requests默认使用ISO-8859-1的编码(ASCII)
其也能够使用页面服务器所指定的编码方式。
UTF-8(万国码)、gbk(国标码)
如果页面中没有charset=‘编码’ 怎么办:response.encoding = None
content:页面源代码(二进制形式(字节))
b’…’ -> 图片、音频、视频
requests图片、视频下载
下载图片(地址在网页找,此处举例为游戏角色图片)
import requests
URL = 'https://game.gtimg.cn/images/yxzj/coming/v2/skins//image/20220623/16559919637365.jpg'
response = requests.get(url=URL)
if response.status_code == 200:
print(response.content)
# 将图片写入本地文件
photo = open('1.jpg', 'wb')
photo.write(response.content)
photo.close()
else:
print(f'状态码:{response.status_code}')
下载视频(地址网页找,此处为游戏角色介绍)
import requests
URL = 'https://video.pearvideo.com/mp4/adshort/20220614/cont-1765337-15895934_adpkg-ad_hd.mp4'
response = requests.get(url=URL)
if response.status_code == 200:
print(response.content)
# 将视频写入本地文件
video = open('1.mp4', 'wb')
video.write(response.content)
video.close()
else:
print(f'状态码:{response.status_code}')