# 本程序為學習代碼,成功爬取了'梨視頻'網站的全部視頻文件,並保存在video文件夾 import os import re import requests def getHTMLText(url): try: r=requests.get(url) r.raise_for_status() r.encoding=r.apparent_encoding return r.text except: print("request failed") url = 'https://www.pearvideo.com/category_8' baseurl = 'https://www.pearvideo.com/' video_data = getHTMLText(url) # 判斷是否已經有video文件夾,沒有則新建 if not os.path.isdir('./video'): os.makedir('./video') res = re.compile(r'(video_[0-9]{7})') video_list = re.findall(res, video_data) # 構建全部視頻文件網址 for i in video_list: video_url = baseurl + i # video_url是視頻文件頁面的地址,不是真正的視頻文件的下載地址 # 請求視頻文件網站url,讀取視頻文件內容 try: text = getHTMLText(video_url) # 返回視頻文件頁面的html res = re.compile(r'srcUrl="(https://.+?mp4)"') final_url = re.findall(res, text)[0] # 返回真正的視頻文件的下載地址 video_content = requests.get(final_url).content # 獲取視頻文件的內容(二進制流) except: print('%s文件內容獲取失敗!' % i) with open('./video/' + i + '.mp4', 'wb') as f: print('正在保存視頻 %s ......' % i) f.write(video_content) f.flush()