爬取梨视频

一、分析

1、浏览器打开存在视屏的链接

2、访问可以打开

3、页面源码中不存在视屏链接,所以可以推断,页面进行了二次请求

4、分析出二次请求链接

5、发现有段被加密了

https://video.pearvideo.com/mp4/adshort/20211027/1636005645152-15887526-140923_adpkg-ad_hd.mp4
https://video.pearvideo.com/mp4/adshort/20211027/cont-1744650-15887526-140923_adpkg-ad_hd.mp4

6、会发现防盗链

二、步骤

1、分析页面(拿到contID)

2、拿到videoStatus返回的json,->srcUrl(绕过防盗链)

3、将srcUrl进行修复(修复被加密的位置)

4、下载视频

三、代码

import requests

url = "https:/www.pearvideo.com/video_1744650"

headers = {

	"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.40",
        # 防盗链
	"Referer": url
}




contId = url.split('_')[-1]
# 二次请求页面链接
videoStatusUrl = f"https://www.pearvideo.com/videoStatus.jsp?contId={contId}"

resp = requests.get(videoStatusUrl,headers=headers)
dic = resp.json()

# 视屏被加密后的链接
srUrl = dic['videoInfo']['videos']['srcUrl']
# url中被加密的位置
systemTime = dic['systemTime']
# 修复视屏链接
srUrl = srUrl.replace(systemTime,f"cont-{contId}")

# 下载
with open("a.mp4",mode="wb") as f :
	f.write(requests.get(srUrl).content)

resp.close()

posted @ 2021-11-04 15:06  lnterpreter  阅读(43)  评论(0编辑  收藏  举报