ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

爬虫(5)-防盗链之梨视频

2022-03-21 19:36:15  阅读:199  来源: 互联网

标签:pearvideo 1755641 之梨 爬虫 mp4 video https com 防盗链


# -*- coding: utf-8 -*-
"""
@Time    :  2022/3/21 17:02
@Author  : Andrew
@File    : 防盗链.py
"""
# 页面源代码运行后,在数据的加持下,才是实时的f12所看到的样子
# 1通过对比视频播放地址,实际的地址https://www.pearvideo.com/video_1755641
# 2动态页面的地址是https://video.pearvideo.com/mp4/adshort/20220319/cont-1755641-15846744_adpkg-ad_hd.mp4
# 3而在预览页,https://video.pearvideo.com/mp4/adshort/20220319/1647854201574-15846744_adpkg-ad_hd.mp4
# 发现3与实际的不一样,https://video.pearvideo.com/mp4/adshort/20220319/和-15846744_adpkg-ad_hd.mp4是相同的
# 不一样的地方在video_1755641与1647854201574,而1647854201574是预览页的system Time

# 站在爬虫的角度是拿源代码去解析实际的播放地址,也就是2,但是由于梨视频的网站属于二次加载
# ,所以在源代码中并没有发现该视频的地址,实际上我们只能手动用来参照,也就是我们需要通过1、3去拼凑

# 防盗链:Referer: https://www.pearvideo.com/video_1755641
"""
    1.{'resultCode': '5', 'resultMsg': '该文章已经下线!', 'systemTime': '1647855533877'}单纯的requests.get(url)
        -考虑是否被反扒,加上headers
        -在requesturl那里发现了referer,这个就是防盗链,意思是,人家网页之间的转换是有顺序的,一串串的挨着,如果当前页面的地址的上一级的链接是谁的话,就说明有人在偷资源,就会显示上面的信息
            所以就在headers里面的加上一个防盗链,因为是从视频地址url这里进行请求获取的requesturl
            Referer: https://www.pearvideo.com/video_1755641(视频地址)
"""

import requests

# 打开视频页,拉取视频地址
url = "https://www.pearvideo.com/video_1755641"
cont_id = url.split("_")[-1]
# 在检查网页开发工具中找到requestURl
requestUrl = f"https://www.pearvideo.com/videoStatus.jsp?contId={cont_id}&mrd=0.17407634348368117"
# 拿到videoStatus返回的json -》拿到srcURL
# 处理反扒加headers
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 "
                  "Safari/537.36 Core/1.77.97.400 QQBrowser/10.9.4621.400 ",
    # 防盗链  -溯源 当前请求的上一级是谁
    "Referer": url
}
resp = requests.get(requestUrl, headers=headers)
result = resp.json()
print(resp.json())
# srcURL中的内容修改,然后下载
srcUrl = result["videoInfo"]["videos"]["srcUrl"]
systemTime = result["systemTime"]

# https://video.pearvideo.com/mp4/adshort/20220319/1647856405404-15846744_adpkg-ad_hd.mp4
# https://video.pearvideo.com/mp4/adshort/20220319/cont-1755641-15846744_adpkg-ad_hd.mp4
srcUrl = srcUrl.replace(systemTime, f"cont-{cont_id}")
# 下载
with open('a.mp4',mode="wb") as f:
    f.write(requests.get(srcUrl).content)
resp.close()

 

标签:pearvideo,1755641,之梨,爬虫,mp4,video,https,com,防盗链
来源: https://www.cnblogs.com/qiao-16/p/16036102.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有