#本程序为学习代码,成功爬取了'梨视频'网站的全部视频文件,并保存在video文件夹
importosimportreimportrequestsdefgetHTMLText(url):try:
r=requests.get(url)
r.raise_for_status()
r.encoding=r.apparent_encodingreturnr.textexcept: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 invideo_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()