python需要花钱下载吗_用Python下载知乎视频,非常实用
原標(biāo)題:用Python下載知乎視頻,非常實(shí)用
Python下載知乎視頻。
# -*- coding: utf-8 -*-
"""
下載知乎視頻:
依賴:
pip install requests
mac 安裝 ffmpeg:
brew install ffmpeg
"""
import re
import uuid
import subprocess
import requests
# 下邊 cookie 請(qǐng)打開知乎打開瀏覽器開發(fā)者工具隨便找一個(gè)請(qǐng)求復(fù)制 cookie,千萬不要泄露出去
HEADERS = {
'cookie': '' # TODO
}
QUALITY = 'ld' # 支持是 'ld' 'sd' 'hd' 分別是低清、中清、高清
def get_video_ids_from_url(url):
"""
回答或者文章的 url
"""
html = requests.get(url, headers=HEADERS).text
video_ids = re.findall(r'data-lens-id="(\d+)"', html)
if video_ids:
return set([int(video_id) for video_id in video_ids])
return []
def yield_video_m3u8_url_from_video_ids(video_ids):
for video_id in video_ids:
api_video_url = 'https://lens.zhihu.com/api/videos/{}'.format(int(video_id))
r = requests.get(api_video_url, headers=HEADERS)
playlist = r.json()['playlist']
m3u8_url = playlist[QUALITY]['play_url']
yield m3u8_url
def download(url):
video_ids = get_video_ids_from_url(url)
m3u8_list = list(yield_video_m3u8_url_from_video_ids(video_ids))
filename = '{}.mp4'.format(uuid.uuid4())
for idx, m3u8_url in enumerate(m3u8_list):
print('download {}'.format(m3u8_url))
subprocess.call(['ffmpeg', '-i', m3u8_url, filename.format(str(idx))])
if __name__ == '__main__':
# 貼上你需要下載的 回答或者文章的鏈接
url = '--------'
download(url)
"""
下載知乎視頻:
依賴:
"""
import re
}
喜歡的話關(guān)注收藏評(píng)論轉(zhuǎn)發(fā)比心么么噠!Python學(xué)習(xí)交流企-鵝-裙-588+090+942
"""
"""
return []返回搜狐,查看更多
責(zé)任編輯:
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python需要花钱下载吗_用Python下载知乎视频,非常实用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pandas 合并所有列_Python学
- 下一篇: python 取日期_python取出所