爬蟲——爬取梨視訊
阿新 • • 發佈:2020-09-16
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