import requests # 导入爬虫模块
import re # 导入正则模块
import os # 导入文件操作模块
a = 1 # 主程序判断结束的锚
start = 0 # 记录爬取位置
# 主程序循环
while a:
v = [] # 存放视频地址
# 拼接地址,爬取网页内容
url = 'https://www.pearvideo.com/category_loading.jsp?reqType=5&categoryId=1&start=' + str(start)
res = requests.get(url = url)
# 使用正则获取视频名称
vnz = '<div class="vervideo-title">(.*?)</div>'
vn = re.findall(vnz,res.text)
# 使用正则获取HTML中的视频超链接
vz = '<a href="(.*?)" class="vervideo-lilink actplay">'
vu = re.findall(vz,res.text)
for i in vu:
# 循环取出视频超链接,拼接并爬取网页内容
vurl = 'https://www.pearvideo.com/' + i
res1 = requests.get(url = vurl)
# 找到网页中的视频地址,使用正则取出并存入视频列表(v)中
vz2 = 'srcUrl="(.*?)"'
vurl1 = re.findall(vz2,res1.text)
v.append(vurl1[0])
for i in range(len(v)):
# 循环取出视频名称并拼接成文件路径
add = os.path.join('D:\梨视频', vn[i]) + '.mp4'
with open(add,'wb') as f:
# 循环取出视频地址然后获取视频数据,并用数据流存入文件中
for line in requests.get(v[i]).iter_content():
f.write(line)
# 判断视频文件中的视频地址数量是否为12个
# 是:继续循环 否:结束循环
if len(v) == 12:
start = int(start) + 12
else:
print("结束")
a = None