[原创]下载 好看视频 的视频
本帖最后由 麦田孤望者 于 2020-3-28 15:58 编辑用到的第三方库:requests,lxml
(添加了搜索的功能)
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/div/div/div/div/video/@src')
videoUrl = result
result = html.xpath('/html/body/div/div/div/div/h2/text()')
title = result
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')).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
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
(如果这里不能放外链的话麻烦管理告知)
求评分嘤嘤嘤{:301_999:} 本帖最后由 gutisangluo 于 2020-5-18 10:54 编辑
{:1_907:}视频下到哪里去了呀 没看到代码里有路径啊。。。
找到了。。。
原理能扩展到其他视频网站吗? 测试了一下,发现下载的是标清的视频,比较模糊,地址页面上的html代码里有超清的。
奇怪的是,手动观察html页面时,/html/body/div/div/div/div/div/video/@src确实是高清地址的位置,但为啥下载的是标清的呢?
我用selenium打开网页,再用"return document.getElementsByTagName('video').src" 获取到地址后,再下载,就是高清了。
不知道是不是好看视频页面做了反爬机制,值得探讨 可以去水印吗
溜溜。看看怎么样 18537712149 发表于 2020-3-28 15:28
可以去水印吗
去不了
原视频就有水印 不明白这个怎么用。 18537712149 发表于 2020-3-28 15:28
可以去水印吗
对,能去掉 右上角 好看视频 的水印吗,好看视频是最不好去水印的 麦田孤望者 发表于 2020-3-28 15:42
去不了
原视频就有水印
好看视频太狠了,上传后的视频都从新生成一个带水印的原视频 研究一下。谢谢楼主分享!