技术0
经验115
魅力0
人气0
分享0
原创0
注册时间2023-11-4
最后登录2023-11-4
阅读权限15
在线时间0 小时
主题1
回帖0

初出茅庐

- 积分
- 58
- 人气
- 0
- 分享
- 0
|
import requests as req
import json
import shutil
from lxml import etree
import os
try:
while True:
url = str(input("请输入要下载梨视频的链接:"))
path = os.path.abspath(str(input('请输入视频保存的路径:')))
video_id = url.split('_')[1]
headers = {
'Referer': f'https://www.pearvideo.com/video_{video_id}',
'Cookie': 'None',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
with req.get(url=url, headers=headers) as resp_title:
html = etree.HTML(resp_title.text)
video_title = html.xpath('//*[@id="detailsbd"]/div[1]/div[2]/div/div[1]/h1/text()')
video_s = f'https://www.pearvideo.com/videoStatus.jsp'
video_params = {
'contId': f"{video_id}"
}
with req.get(url=video_s, headers=headers, params=video_params) as resp:
js = json.loads(resp.text)
resp.close()
systemtime = str(js['systemTime'])
video_url = str(js['videoInfo']['videos']['srcUrl'])
video_url = video_url.replace(systemtime, f'cont-{video_id}')
with req.get(url=video_url, headers=headers, stream=True) as response:
with open(f"{path}//{video_title[0]}.mp4", 'wb+') as f:
shutil.copyfileobj(response.raw, f)
response.close()
print("下载完成!")
except:
print("下载失败!")
|
|