iceberg710815
# 本程序为学习代码,成功爬取了'梨视频'网站的全部视频文件,并保存在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()

 

分类:

技术点:

相关文章: