python需要花钱下载吗_用Python下载知乎视频,非常实用

原标题:用Python下载知乎视频,非常实用

9a63bd127b5940718c2965d4c929cf25.jpeg

Python下载知乎视频。

# -*- coding: utf-8 -*-

"""

下载知乎视频:

依赖:

pip install requests

mac 安装 ffmpeg:

brew install ffmpeg

"""

import re

import uuid

import subprocess

import requests

# 下边 cookie 请打开知乎打开浏览器开发者工具随便找一个请求复制 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)

ef25ab8696914c42bdf9beeab942c8b5.jpeg

"""

下载知乎视频:

依赖:

"""

import re

}

喜欢的话关注收藏评论转发比心么么哒!Python学习交流企-鹅-裙-588+090+942

"""

"""

return []返回搜狐,查看更多

责任编辑:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/571810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php instanceof 基类,PHP强制对象类型之instanceof操作符

一、简介在php(做为现在的主流开发语言)中实现强制对象类型有时可能非常重要。如果缺少了它,或是因为缺乏这方面的知识——基于不正确的编程假设,或者仅仅是由于懒惰,那么你会在特定的Web应用程序中看到你所不希望的结果。特别是当用php(做为…

msyql备份还原

MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。 1.Win32下MySQL的备份与还原 1.1 备份 开始菜单 | 运行 | cmd |利用“cd \Program Files\MySQL\MySQL Server 5.0\bin”命令进入bin文件夹 | 利用“mysqldump -u 用户名 -p databasename >exportfilename”…

python相比于excel的优势_对照Excel使用Python进行数据分析,更快掌握

Excel和Python,作为数据分析的主流工具,在从效率提升到数据商业化的整个过程中,都起到了重要作用。不管是在Excel中通过鼠标点选实现,亦或是利用Python通过代码实现,数据分析中的很多基础功能都是相通的。 在数据量级大…

oraoledb.oracle 12c,关于OraOLEDB.Oracle找不到驱动问题的一种可能解决方案

如果安装Oracle的时候没有把Oracle Provider for OLE DB,这个组件安装上,那么就会导致在使用程序的时候无法使用Oracle客户端驱动问题,弥补的办法就是重新下载客户端程序。以下介绍win 2008 x64 Oracle 11g x64情况搭建安装驱动程序首先得下…

python二维图颜色函数_Python scipy的二维图像卷积运算与图像模糊处理操作示例

本文实例讲述了Python scipy的二维图像卷积运算与图像模糊处理操作。分享给大家供大家参考,具体如下: 二维图像卷积运算 一 代码 import numpy as np from scipy import signal, misc import matplotlib.pyplot as plt image misc.ascent()#二维图像数组…

linux命令行大全 笔记,《Linux命令行大全》读书笔记

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?shell就是一个程序,它接受从键盘输入的命令,然后把命令传递给操作系统执行。当使用图像用户界面时,我们需要一个叫做终端仿真器…

dedecms 添加,编辑文章时 文章标题有字数限制的解决办法。

百度上说 解决方法有两步: 一、先要在系统参数下的其他选项中修改文档标题最大长度(如修改为150), 后台系统 - 其它选项 - 文档标题最大长度 默认的是60改为150, 二、修改默认参数后,需要手工修改数据表。 …

python绘制散点图、如何选两列作为横坐标_在matplotlib散点图(水平杆图)中从x=0到数据点绘制水平线...

考虑以下情节:由此函数生成:def timeDiffPlot(dataA, dataB, savetoNone, legNone): labels list(dataA["graph"]) figure(figsizescreenMedium) ax gca() ax.grid(True) xi range(len(labels)) rtsA dataA["running"] / 1000.0…

linux命令基础知识 管道流,linux基础知识-I/O重定向,管道(示例代码)

系统设定默认输出设备:标准输出,STDOUT, 1默认输入设备:标准输入, STDIN, 0标准错误输出:STDERR, 2标准输入:键盘标准输出和错误输出:显示器I/O重定向:Linux:>: 覆盖输出[[email protected] …

自动轮播与按钮的联动

将自动轮播与按钮结合起来,就是多写了好几行,挺好看的不过,留下 z1; l.eq(0).css("background-color","orange"); function move(){ if(z!3){ bo.stop(); bo.animate({marginLeft:z*(-680)"px"}, 500, functio…

python运行命令_Python中执行外部命令

有很多需求需要在Python中执行shell命令、启动子进程,并捕获命令的输出和退出状态码,类似于Java中的Runtime类库。 subprocess模块的使用: Python使用最广泛的是标准库的subprocess模块,用来替换os.system(),os.spawn*(),os.popen…

linux多选项菜单脚本,linux shell 编写菜单脚本事例

menu2文件代码:---#!/bin/sh#menu2#Main menu script#ignore ctrl-c and QUIT interruptstrap "" 2 3 15MYDATEdate %d/%m/%YTHIS_HOSThostname -sUSERwhoami#user level fileUSER_LEVELSpriv.user#hold fileHOLD1hold1.$$#colour functionfunction colou…

python简单爬虫入门一_Python爬虫快速入门:基本结构简单实例

本爬虫系列入门教程假设读者仅有一点点Python基础或者近乎为零的基础。如果是有Python基础的可以跳过一些对于Python基本知识的补充。 爬虫能干什么呢?一句话概括,正常通过浏览器可以获取的数据,爬虫都可以获取。这句话可以说是包罗万象。一是…

Windows下rocketmq mqnamesrv.exe 启动成功,但是mqbroker.exe启动失败

1、mqnamesrv.exe启动成功 2、启动mqbroker.exe失败 解决办法,删除C:\Users\"当前系统用户名"\store下的所有文件,就可以了转载于:https://www.cnblogs.com/roujingchuxia/p/7685796.html

python加入中小学课程_通知:中小学将新增一门课!对2008-2013年出生的孩子影响最大!...

很多家长都在发愁: “现在孩子竞争这么激烈,奥数、外语、舞蹈、钢琴...样样都行,我该让孩子学点什么,才不会被同龄人甩下?” 其实,人工智能时代,孩子们的竞争战地正在转到——少儿编程&#xff…

linux 网络连接未知,ubuntu – 网络问题. Ifup说未知界面

这是ifconfig的输出# ifconfigenp0s3 Link encap:Ethernet HWaddr 08:00:27:ef:b6:e6inet addr:192.168.2.3 Bcast:192.168.2.255 Mask:255.255.255.0inet6 addr: fe80::cf19:776a:4d5c:36e0/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:713069 …

linux --- vsftp

vsftp 一、简介与原理 1、VSFTP(very secuery file tranfer protocol) 2、主动模式: 3、被动模式: 4、服务器程序: > vsftpd 5、install: >vaftpd-2.2.2-11.e16.i686.rpm >yum -y install vsftpd …

go tcp客户端自动重连_使用 Go 语言创建 WebSocket 服务

今天介绍如何用 Go 语言创建 WebSocket 服务,文章的前两部分简要介绍了 WebSocket 协议以及用 Go 标准库如何创建 WebSocket 服务。第三部分实践环节我们使用了 gorilla/websocket 库帮助我们快速构建 WebSocket 服务,它帮封装了使用 Go 标准库实现 WebS…

linux系统终端more,一篇文章让你学透Linux系统中的more命令

Linux系统下有很多实用工具可以让你在终端界面查看文本文件。其中一个就是 more。more 跟我之前另一篇文章里写到的工具 —— less 很相似。它们之间的主要不同点在于 more 只允许你向前查看文件。尽管它能提供的功能看起来很有限,不过它依旧有很多有用的特性值得你…

简单说下C#变量的作用域

变量的作用域分为局部变量和全局变量举个小例子 class Program { int i 3;//这个变量i 需要实例化Program才能使用 static void Main(string[] args) { Program aa new Program(); int g aa.i; int i 5;//这个变量i只能作用在Main方法中 int f i; Console.WriteLine(f); C…