查看: 375|回复: 1

[Python] 爬取梨视频

[复制链接]

0

技术

0

魅力

0

原创

初出茅庐

Rank: 2

积分
58
人气
0
分享
0
发表于 2023-11-4 14:15:20 | 显示全部楼层 |阅读模式
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("下载失败!")


1

技术

7

魅力

2

原创

管理员

Rank: 9Rank: 9Rank: 9

积分
6867
人气
208
分享
49

灌水之王论坛元老优秀版主活跃会员

发表于 2023-11-26 14:27:50 | 显示全部楼层
小提示:发代码可以用discuz的插入代码
论坛事务联系邮箱 henry217@x64bbs.cn
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表