写了一个脚本爬取了阳光电影的豆瓣高分电影,需要用迅雷帮我一部一部的自动下载好,供我无聊时观看.为什么要一部一部的下?

因为中国移动送了我一张无限流量卡,结果才用了5个G我就被限速到 100kb/s 了,不能忍 不能浪费.遂生出用来给电脑开热点下电影的想法.100kb的网速也只能一部一部下了.完事开头难,我需要知道是否能用命令行控制迅雷下载电影,百度了下,OK,没问题

然后思考了一下,画了个流程图

下载流程图

我大概需要实现3个功能

使用命令行控制迅雷下载指定链接

检测任务是否开始

检测当前任务是否完成,用于确定是否开始下载下一部

功能1 控制迅雷

好了,说说怎么控制迅雷开始下载吧:

百度了一下怎么用命令控制迅雷下载,发现可以在cmd里直接输入 迅雷主程序绝对路径 + 下载连接 控制迅雷开始下载,但是要注意的是路径应放在双引号内,这样当路径包含空格时不会报错,还有就是你的路径肯定跟我的不一样,所以需要自己去找,可以找到快捷方式,然后右键找到文件所在地址,直到找到Thunder.exe

例如:

"D:\Program Files\xunleivip\Program\Thunder.exe" ftp://ygdy8:ygdy8@y201.dygod.org:1132/[阳光电影www.ygdy8.com].冬眠.BD.720p.中文字幕.rmvb

命令行控制迅雷下载

开始下载

不过有一点需要注意:

不能用迅雷极速版,因为极速版在新建任务时会弹出窗口询问是否开始下载.还关不掉,而迅雷U享版和广为人知的那个很多广告的迅雷可以设置不弹出窗口,我的是U享版

关掉询问窗口

OK,然后就是代码实现了,找对了思路,代码简直是easy

import os

url="ftp://ygdy8:ygdy8@y201.dygod.org:1132/[阳光电影www.ygdy8.com].冬眠.BD.720p.中文字幕.rmvb"

os.system(r'"D:\Program Files\xunleivip\Program\Thunder.exe" {url}'.format(url=url))

url 和程序路径之间是有一个空格的

功能2 检测任务是否开始

一开始我是想找迅雷是否有这样的命令接口什么的,然而并没有(也可能是我没找到)忧郁了半天,忽然想起了迅雷在下载资源时是会有暂存文件的,此文件名是这样的 资源名.xltd 例如

[阳光电影www.ygdy8.com].冬眠.BD.720p.中文字幕.rmvb.xltd

如果任务开始了,就会有这样一个文件,我们只需要去检测这个文件是否存在就可以判断任务是否开始了.代码实现如下:

import os

def check_start(filename):

'''

检测文件是否开始下载

'''

cache_file = filename+".xltd"

return os.path.exists(os.path.join(save_path,cache_file))

代码中的save_path变量是文件保存路径,我的是

save_path="D:\桌面"

功能3 检测任务是否完成

跟功能2的思路是一样的,只有当下载完成时,暂存文件才会变成正常的资源文件名,所以同理,我们去检测是否存在就是.

import os

def check_end(fiename):

'''

检测文件是否下载完成

'''

return os.path.exists(os.path.join(save_path,fiename))

代码中的save_path变量是文件保存路径,我的是

save_path="D:\桌面"

这些方法都是依靠文件名来判断的,我们只需要从链接中提取到文件名即可,怎么提取呢?

ftp://ygdy8:ygdy8@y201.dygod.org:1132/[阳光电影www.ygdy8.com].冬眠.BD.720p.中文字幕.rmvb

可以看到文件名就在连接最后面,我们可以用os.path.split()方法去分割,返回的是个元组

捕获.JPG

代码实现如下

def get_filename(url):

return os.path.split(url)[1]

开始拼装

OK,需要用到的功能写好了,开始根据流程拼装

首先需要拿到电影资源链接,我保存到了一个txt文件中

资源链接

大概200多条,不多,所以取出来,保存到一个list即可.

然后一个一个的下载.

写一个方法来下载资源把

def download(url):

'''

下载资源

返回True表示下载完成 否则失败

'''

os.system(r'"D:\Program Files\xunleivip\Program\Thunder.exe" {url}'.format(url=url))

#一定要休眠一段时间,执行命令后要等一会儿迅雷才会新建任务,

#然后还要寻找资源,这都需要时间,大概多久,自己去测试,根据网络、资源不同,寻找资源的速度也不同

#如果没启动迅雷,迅雷还会启动一会儿

time.sleep(20)

filename = get_filename(url)

print("正在下载 {}".format(filename))

#检测任务是否已开始

#有时候会因为资源不存在,或者迅雷该死的版权问题会下载失败

if check_start(filename):

while True:

#每分钟检测一次是否下载完成

time.sleep(60)

if check_end(filename):

return True

else:

return False

好,开始循环遍历一个个的下载把

def main():

#获取所有资源链接

f = open("urls.txt","r")

urls = [url.replace("\n","") for url in f.readlines()]

f.close()

# 开始循环下载

for url in urls:

if download(url):

print("======下载完成======")

else:

print("=======下载失败=====")

if __name__ == '__main__':

print("=======电影自动下载程序启动=========")

main()

好了,运行脚本开始下载把

要是对我的urls.txt感兴趣的话,去下载把,都是豆瓣高分电影

https://pan.baidu.com/s/1nwQ9qfJ

代码全览

import os

import time

save_path="D:\桌面"

def check_end(fiename):

'''

检测文件是否下载完成

'''

return os.path.exists(os.path.join(save_path,fiename))

def check_start(filename):

'''

检测文件是否开始下载

'''

cache_file = filename+".xltd"

return os.path.exists(os.path.join(save_path,cache_file))

def get_filename(url):

return os.path.split(url)[1]

def download(url):

'''

返回True表示下载完成 否则失败

'''

os.system(r'"D:\Program Files\xunleivip\Program\Thunder.exe" {url}'.format(url=url))

time.sleep(20)

filename = get_filename(url)

print("正在下载 {}".format(filename))

if check_start(filename):

while True:

#每分钟检测一次是否下载完成

time.sleep(60)

if check_end(filename):

return True

else:

return False

def main():

#获取所有资源链接

f = open("urls.txt","r")

urls = [url.replace("\n","") for url in f.readlines()]

f.close()

# 开始循环下载

for url in urls:

if download(url):

print("======下载完成======")

else:

print("=======下载失败=====")

if __name__ == '__main__':

print("=======电影自动下载程序启动=========")

main()

python下载电影速度_我是如何使用python控制迅雷自动下载电影的?相关推荐

  1. 怎么用迅雷下载python_我是如何使用python控制迅雷自动下载电影的?

    原博文 2018-09-04 21:50 − https://www.jianshu.com/p/90d85f13ed87... 相关推荐 2019-09-28 21:13 − Python pyth ...

  2. 如何用迅雷下载python_我是如何使用python控制迅雷自动下载电影的?

    原博文 2018-09-04 21:50 − https://www.jianshu.com/p/90d85f13ed87... 相关推荐 2019-09-28 21:13 − Python pyth ...

  3. 我是如何使用python控制迅雷自动下载电影的?

    https://www.jianshu.com/p/90d85f13ed87

  4. python的延时绘图_我是如何用python+小程序实现延时摄影的

    以下是详细步骤打开手机,使用下面图片小程序码"定时间隔拍照"拍照得到一大堆图片.手机每隔n秒拍一张图片,得到很多张图片(通过手机小程序可以实现,你也可以用其他软件)把这些图片拷贝到 ...

  5. 安装iCloud客户端,更改下载位置,报错:“更新时不能更改自动下载文件夹”

    安装iCloud客户端,更改下载位置,报错:"更新时不能更改自动下载文件夹" 我安装了iCloud,我想讲iCloud中的照片下载到pc. 想要修改下载到pc端的位置,即哪个文件夹 ...

  6. python下载无法安装_各种版本的python下载安装教程

    关键时刻,第一时间送达! 先不说楚枫的这般年纪,能够踏入元武一重说明了什么,最主要的是,楚枫在刚刚踏入核心地带时,明明只是灵武七重,而在这两个月不到的时间,连跳两重修为,又跳过一个大境界,踏入了元武一 ...

  7. python如何播放视频_在网上看到一个视频!怎么下载下来啊?

    原标题:在网上看到一个视频!怎么下载下来啊? 大家早,我是云景,之前我给大家连续分享过三篇关于下载网页视频的技巧,但是有些同学觉得难!因为里面用到了Python的知识. 其实,我之前也分享过一个更加简 ...

  8. python迅雷自动下载_Python3.x+迅雷x 自动下载高分电影的实现方法

    Python3.x+迅雷x 自动下载高分电影的实现方法 发布时间:2020-09-08 00:08:49

  9. motrix下载没速度_高颜值没广告 下载神器Motrix体验

    曾经,下载是件很普通的事,找到一条下载资源,点击按钮等上几分钟,很快就能得到自己心仪的文件. 然而现实的情况是,如今的下载越来越不单纯,不少下载工具死的死伤的伤,留在市场中的没有几个.原本简简单单的下 ...

最新文章

  1. ajax跨域请求问题
  2. JavaScript习题(数组去重、有序数组乱序排列)
  3. 工作感想:浅论Java教学工作
  4. php 实现联想式 搜索,php实现联想搜索,你会吗?_后端开发
  5. Cordova框架基本原理
  6. JAVA 实现阿里云的短信验证码
  7. 什么是bug?bug的分类
  8. 幽默故事:1、有实力的女人;2、小小挖蕨鸡(木子家原创)
  9. 用C语言编写程序,任意输入一个字符串,将其中的字符按从小到大的顺序重排
  10. 中兴视觉大数据报道:人工智能发展史上的起起伏伏
  11. 让生态更有力量 CDEC2020中国数字智能生态大会成都站圆满收官
  12. oppo修改无线网服务器,简单小修改,你的OPPO手机wifi信号会马上提升
  13. 商用室内机器人才是未来机器人开发的热点与趋势
  14. 不得了了!刚刚腾讯官宣 Python 开发人才这样选
  15. MS SQL 2008 Express 下载
  16. 海康大华安防网络摄像头Onvif、RTSP网络无插件直播流媒体服务EasyNVR显示设备不在线问题排查步骤汇总
  17. Genesis10.0 安装教程
  18. 怎么更改计算机管理员用户名和密码,Win10系统无法修改管理员账户密码怎么办?...
  19. 运用 DRM 对流媒体文件加密
  20. (完整版!!)十多年从事微波、系统、芯片的经验分享

热门文章

  1. React + Ts 自定义 日历插件
  2. 2021年2月CFA考试费用是多少?
  3. markdown字体大小颜色样式
  4. Java 通过gecco快速搭建一个爬虫框架
  5. CockroachDB简介
  6. ch9121-网络配置协议
  7. 【树莓派】树莓派CSI摄像头树莓派摄像头安装及测试方法
  8. android 串口 wifi模块,一文深度了解串口WiFi模块的应用场景
  9. Apache部署php项目
  10. [原创]微软中国研究院面试题的思考......