Python实现Youku视频批量下载功能
发布时间 - 2026-01-11 00:09:38 点击率:次前段时间由于收集视频数据的需要,自己捣鼓了一个YouKu视频批量下载的程序。东西虽然简单,但还挺实用的,拿出来分享给大家。

版本:Python2.7+BeautifulSoup3.2.1
import urllib,urllib2,sys,os
from BeautifulSoup import BeautifulSoup
import itertools,re
url_i =1
pic_num = 1
#自己定义的引号格式转换函数
def _en_to_cn(str):
obj = itertools.cycle(['“','”'])
_obj = lambda x: obj.next()
return re.sub(r"['\"]",_obj,str)
if __name__ == '__main__':
#下载连续3个网页的视频
while url_i <= 3:
webContent = urllib2.urlopen("http://news.youku.com/focus/index/_page26716_" + str(url_i) + ".html")
data = webContent.read()
#利用BeautifulSoup读取视频列表网页数据
soup = BeautifulSoup(data)
print "-------------------------Page " + str(url_i) + "-------------------------"
#获得相应页面的视频thumbnail和title的list
tag_list_thumb = soup.findAll('li','v_thumb')
tag_list = soup.findAll('li', "v_title")
for item in tag_list:
#通过每个thumbnail中的herf导向视频播放页面
web_video_play = urllib2.urlopen(item.a['href'])
data_vp = web_video_play.read()
#利用BeautifulSoup读取视频播放网页数据
soup_vp = BeautifulSoup(data_vp)
#找到“下载”对应的链接
tag_vp_list = soup_vp.findAll('a', id = 'fn_download')
for item_vp in tag_vp_list:
#将下载链接保存到url_dw中
url_dw = '"' + item_vp['_href'] + '"'
print item.a['title'] + ": " + url_dw
#调用命令行运行iku下载视频,需将iku加入环境变量
os.system("iku " + url_dw)
#保存每个视频的thumbnail
for item_thumb in tag_list_thumb:
urllib.urlretrieve(item_thumb.img['src'], "E:\\下载视频\\thumbnails\\" + str(pic_num) + "." +
_en_to_cn(item_thumb.img['title']) + ".jpg")
pic_num += 1
print "--------------------------------------------------------------"
print "--------Page " + str(url_i) + "'s video thumbnails have been saved!"
url_i += 1
程序思想很简单,就是通过解析网页数据找到相应的视频播放网页链接,然后根据播放页面找到下载的链接,如下图所示:
由于从网页数据中获得的下载链接是必须通过youku自己的iku才能下载的。这一点费了我一番周折,侥幸发现iku这个软件的命令行非常简单(直接iku download_link即可),所以最简单的办法就是利用Python中的命令行接口os.system来调用iku来下载视频。另外注意程序运行之前需要先启动iku,否则下载完一个视频就要再启动一次。
PS:下载视频的时候就会发现,国内这些视频网页做的真的不够精细,含有太多的重复链接和坏死链接,小小鄙视一下。
以上所述是小编给大家介绍的Python实现Youku视频批量下载功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# python
# youku
# 批量下载视频
# Python爬虫实战案例之爬取喜马拉雅音频数据详解
# python爬虫智能翻页批量下载文件的实例详解
# 用python批量下载apk
# python 根据列表批量下载网易云音乐的免费音乐
# 用python爬虫批量下载pdf的实现
# python FTP批量下载/删除/上传实例
# 使用python3批量下载rbsp数据的示例代码
# 如何基于Python批量下载音乐
# python爬虫 批量下载zabbix文档代码实例
# python实现抖音视频批量下载
# python+POP3实现批量下载邮件附件
# python实现壁纸批量下载代码实例
# Python爬虫之批量下载喜马拉雅音频
# 命令行
# 视频播放
# 给大家
# 下载链接
# 小编
# 自己的
# 就会
# 太多
# 在此
# 很简单
# 所示
# 拿出来
# 最简单
# 所述
# 前段时间
# 还挺
# 给我留言
# 要再
# 感谢大家
# 如下图
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何获取上海专业网站定制建站电话?
nginx修改上传文件大小限制的方法
新三国志曹操传主线渭水交兵攻略
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Python文件异常处理策略_健壮性说明【指导】
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Python进程池调度策略_任务分发说明【指导】
Mybatis 中的insertOrUpdate操作
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
如何在万网主机上快速搭建网站?
WordPress 子目录安装中正确处理脚本路径的完整指南
如何将凡科建站内容保存为本地文件?
canvas 画布在主流浏览器中的尺寸限制详细介绍
浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
香港服务器租用费用高吗?如何避免常见误区?
Android okhttputils现在进度显示实例代码
如何在万网自助建站中设置域名及备案?
如何快速生成高效建站系统源代码?
Swift开发中switch语句值绑定模式
历史网站制作软件,华为如何找回被删除的网站?
如何在宝塔面板中创建新站点?
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
网站优化排名时,需要考虑哪些问题呢?
如何快速生成凡客建站的专业级图册?
在线教育网站制作平台,山西立德教育官网?
Linux系统运维自动化项目教程_Ansible批量管理实战
用yum安装MySQLdb模块的步骤方法
Laravel如何使用Eloquent进行子查询
如何撰写建站申请书?关键要点有哪些?
音响网站制作视频教程,隆霸音响官方网站?
米侠浏览器网页背景异常怎么办 米侠显示修复
如何快速启动建站代理加盟业务?
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
西安专业网站制作公司有哪些,陕西省建行官方网站?
浅述节点的创建及常见功能的实现
lovemo网页版地址 lovemo官网手机登录
非常酷的网站设计制作软件,酷培ai教育官方网站?
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
详解Oracle修改字段类型方法总结
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
油猴 教程,油猴搜脚本为什么会网页无法显示?
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
如何做网站制作流程,*游戏网站怎么搭建?
Android Socket接口实现即时通讯实例代码
MySQL查询结果复制到新表的方法(更新、插入)

