shof
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

分类:

技术点:

相关文章:

猜你喜欢
相关资源
相似解决方案