梨视频下载操作

发布时间:2022-06-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了梨视频下载操作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
import requests
from lxml import etree
from multiprocessing.dummy import Pool
# 爬取梨视频的视频数据
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0"
}
# 梨视频生活分类/进行get请求,解析视频详情页url,视频名称
url = 'https://www.pearvideo.com/category_5'

page_text = requests.get(url=url, headers=headers).text
tree = etree.HTML(page_text)
# 进行数据分析,分析获取对应的视频详情url地址
li_list = tree.xpath('//ul[@id="listvideoListUl"]/li')  # 获取对应的li标签
url_list = []
# 循环 li标签
for li in li_list:
    # 视频名称
    a_title = li.xpath(".//a/div[@class='vervideo-title']/text()")[0] + '.mp4'
    title = a_title.split("|")  # 名字
    if len(title) > 1:
        title = title[1]
    else:
        title = title[0]
    # 视频详情地址
    a_url = "https://www.pearvideo.com/" + li.xpath(".//a/@href")[0]  # 视频详情地址
    id = a_url.split("_")[1]  # 视频id

    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0",
        # 防盗链/表示请求跳转的地址,是那个位置。防止恶意请求
        "Referer": a_url
    }
    # 因为视频时ajax请求所以找到ajax中的url
    ajax_url = "https://www.pearvideo.com/videoStatus.jsp?contId={}".format(id)
    # 获取ajax请求的内容
    resp = requests.get(url=ajax_url, headers=headers).json()
    # 获取视频链接(加密的)
    srurl = resp["videoInfo"]["videos"]["srcUrl"] # https://video.pearvideo.com/mp4/third/20211117/1637239169190-11724129-224951-hd.mp4
    # 在json中获取获取加密的位置(加密的内容)
    systemtime = resp["systemTime"]
    # 修复视频链接/将旧的加密位置进行替换.replace
    url_x = srurl.replace(systemtime, "cont-{}".format(id)) # https://video.pearvideo.com/mp4/third/20211117/cont-1746041-11724129-224951-hd.mp4
    dic ={
        "url":url_x,
        "title":title,
    }
    # 将视频添加到列表中
    url_list.append(dic)


# 使用线程池对视频数据进行请求
def video(dic):
    # 取url
    url = dic["url"]
    # 取名字
    title = dic["title"]
    # 获取2进制 视频数据
    content = requests.get(url=url,headers=headers).content
    # 视频保存
    with open("./{}".format(title),"wb",) as f1:
        f1.write(content)

pool = Pool(4) # 生成4个线程
x = pool.map(video,url_list)

代码只是爬取4条视频。

视频的url属于ajax请求,所以要先获取ajax中的json的字典

在从字典中获取到视频地址

在字典中获取到:https://video.pearvideo.com/mp4/third/20211117/1637239169190-11724129-224951-hd.mp4

正常的视频地址:https://video.pearvideo.com/mp4/third/20211117/cont-1746041-11724129-224951-hd.mp4

将在第一部分请求中的进行获取视频id进行替换就可以,在进行下载。

脚本宝典总结

以上是脚本宝典为你收集整理的梨视频下载操作全部内容,希望文章能够帮你解决梨视频下载操作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: