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