今天主要接触到的知识点是防盗链,之前有过提及,现在是重点讲referer。
任务:
#视频从服务器返回的页面源代码里面可能没有video那个标签, 极有可能是通过js或者脚本生成出来的(即二次请求,客户端渲染) #1.拿到contid #2.拿到videoStatus里面的json->srcUrl #3.srcUrl里面的内容进行修改 #4.下载视频
#1.拿到contid
import requests
url="https://www.pearvideo.com/video_1731851"
contid=url.split("_")[-1]
#2.拿到videoStatus里面的srcUrl
videoStatus=f"https://www.pearvideo.com/videoStatus.jsp?contId={contid}&mrd=0.04889298351162008"
headers={
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
#防盗链:溯源,当前本次请求的上一级是谁
"Referer": url
}
resp=requests.get(videoStatus,headers=headers)
#print(resp.text)
dic=resp.json()
srcurl=dic['videoInfo']['videos']['srcUrl']
systemtime=dic['systemTime']
#3.srcUrl里面的内容进行修改
srcurl=srcurl.replace(systemtime,'cont-'+contid)
print(srcurl)
#4.下载视频
with open('lishipin.mp4',mode="wb") as f:
f.write(requests.get(srcurl).content)



