吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 11424|回复: 23
上一主题 下一主题
收起左侧

[Python 原创] [原创]下载 好看视频 的视频

  [复制链接]
跳转到指定楼层
楼主
麦田孤望者 发表于 2020-3-28 15:19 回帖奖励
本帖最后由 麦田孤望者 于 2020-3-28 15:58 编辑

用到的第三方库:requests,lxml
(添加了搜索的功能)
[Python] 纯文本查看 复制代码
import requests
import os,time
from lxml import etree

path = os.path.abspath(os.path.dirname(__file__))+'\\'


def getCookie():
    global r
    global headers
    headers = {}
    headers['user-agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36'
    r = requests.session()
    res = r.get('https://haokan.baidu.com/', headers=headers)

    headers['Cookie'] = res.headers['Set-Cookie']


def downloadVideo(url):

    getCookie()
    res = r.get(url, headers=headers)
    html = etree.HTML(res.text, etree.HTMLParser())
    result = html.xpath('/html/body/div[1]/div/div[1]/div[1]/div/video/@src')
    videoUrl = result[0]
    result = html.xpath('/html/body/div[1]/div/div[1]/div[2]/h2/text()')
    title = result[0]
    headers['referer'] = url
    VideoBytes = r.get(videoUrl, headers=headers).content
    with open(path+title+'.mp4', 'wb') as f:
        f.write(VideoBytes)

    print(title, '下载成功')

    time.sleep(2)


def searchVideo(keyword):
    getCookie()

    baseUrl = 'https://haokan.baidu.com/videoui/page/search?pn=1&rn=10&_format=json&tab=video&query='

    kw = str(keyword.encode('utf-8'))[2:-1].replace('\\x', '%').upper()

    headers['referer'] = 'https://haokan.baidu.com/videoui/page/search?query='+kw
    headers['host'] = 'haokan.baidu.com'

    fullUrl = baseUrl+kw

    VideoInfoList = r.get(fullUrl, headers=headers).json()[
        'data']['response']['list']

    WaitInfoList = []
    for index, i in enumerate(VideoInfoList):
        WaitInfoList.append((i['title'], i['author'], i['duration'], i['read_num'], i['publishTimeText'], i['url']))
        print('\n', '【'+str(index)+'】', i['title'], '\n', '作者:', i['author'], '\n', '时长:', i['duration'], '\n', '播放量:', i['read_num'])

    cho = int(input('请输入您需要的视频的序号:'))

    url = WaitInfoList[cho][5]

    downloadVideo(url)


def main():

    cho = input('''
--------欢迎使用好看视频下载器!---------
请选择功能:
【1】下载视频
【2】搜索并下载视频
请输入序号:
''')
    
    if cho == '1':
        downloadVideo(input('请输入视频链接:'))
    elif cho == '2':
        searchVideo(input('请输入搜索关键词'))
    else:
        print('非法输入!')
        time.sleep(2)

main()

临时测试链接:https://haokan.baidu.com/v?vid=7557870878451954662&pd=bjh&fr=bjhauthor&type=video
(如果这里不能放外链的话麻烦管理告知)

求评分嘤嘤嘤

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
gutisangluo + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
gutisangluo 发表于 2020-5-18 10:49
本帖最后由 gutisangluo 于 2020-5-18 10:54 编辑

  视频下到哪里去了呀   没看到代码里有路径啊。。。


找到了。。。


原理能扩展到其他视频网站吗?
推荐
暗黑破坏神 发表于 2020-7-9 11:31
测试了一下,发现下载的是标清的视频,比较模糊,地址页面上的html代码里有超清的。
奇怪的是,手动观察html页面时,/html/body/div[1]/div/div[1]/div[1]/div/video/@src确实是高清地址的位置,但为啥下载的是标清的呢?
我用selenium打开网页,再用"return document.getElementsByTagName('video')[0].src" 获取到地址后,再下载,就是高清了。
不知道是不是好看视频页面做了反爬机制,值得探讨
沙发
18537712149 发表于 2020-3-28 15:28
3#
偷喝奶的浣熊 发表于 2020-3-28 15:39
溜溜。看看怎么样
头像被屏蔽
4#
小非凡 发表于 2020-3-28 15:39
提示: 作者被禁止或删除 内容自动屏蔽
5#
 楼主| 麦田孤望者 发表于 2020-3-28 15:42 |楼主

去不了
原视频就有水印
6#
星星知我心 发表于 2020-3-28 16:09
不明白这个怎么用。
7#
gglaiba 发表于 2020-3-28 16:11

对,能去掉 右上角 好看视频 的水印吗,好看视频是最不好去水印的
8#
gglaiba 发表于 2020-3-28 16:12
麦田孤望者 发表于 2020-3-28 15:42
去不了
原视频就有水印

好看视频太狠了,上传后的视频都从新生成一个带水印的原视频
9#
otho 发表于 2020-3-28 16:44
研究一下。谢谢楼主分享!
10#
mokson 发表于 2020-3-28 17:29
仰膜大神。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-6-6 15:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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