iambus / xunlei-lixian

迅雷离线下载脚本
Other
1.97k stars 377 forks source link

批量添加地址时一个一直忽视的问题——数十集电视剧的下载 #408

Open linux0ne opened 10 years ago

linux0ne commented 10 years ago

http://www.66e.cc/dsj/20140808/28109.htm 上面的地址处是《离婚律师》的下载链接,这里有46集的下载链接,如果一个一个的点右键-复制链接地址-放到离线web迅雷中,那这个过程实在是太麻烦了。 我们对于单个的电影或者少量的链接如果采取上面的方式,还是可以考虑的,逐个放到web迅雷里,然后再用本软件下载之,但在这么多的情况下,有没有什么办法可以一下子把这些下载链接自动解析出来,然后批量放入到web迅雷中去,然后再用本软件集中下载之?

注:这个问题和#405中的内容是相承一脉的, 对于具体的链接如何处理是一个问题。

LeeroyDing commented 10 years ago

这个跟迅雷离线本身没有什么关系,建议另开一个工具,比如做一个浏览器插件,大家会很高兴的。

linux0ne commented 10 years ago

呵呵,我大概的查了一下,这涉及到JQ语言,我一看到这种语法结构就头大,呵。 希望离线脚本里可以集成这样一个功能, 这样就可以一体化了,实现了全方位。

iambus commented 10 years ago
  1. Firefox下可以试下这个扩展: https://addons.mozilla.org/zh-CN/firefox/addon/xunlei-lixian-web/ https://github.com/iambus/xunlei-lixian-web
  2. 也可以在lixian_plugins\parsers目录下建一个叫www66e.py的文件,内容类似:

    from lixian_plugins.api import page_parser
    
    import urllib2
    import re
    
    @page_parser('http://www.66e.cc/')
    def extend_link(url):
       html = urllib2.urlopen(url).read().decode('gbk')
       links = re.findall(r'href="(ftp://[^"]+)"', html)
       return links
linux0ne commented 10 years ago

@iambus 我安装了Firefox的插件,发现这个插件不起作用呢。 1、右键本帖中的《离婚律师》第一集的下载链接,选择“迅雷离线下载”,结果一点反应都没有。 2、我再次登陆官方的迅雷空间,发现刚刚的链接也没有被自动加入到离线空间中去。 3、我也安装了downthemall!插件,这个插件在你制作的插件体系中应该算是一个下载器的作用是吧?如果是,那么因为前两步的情况,它并没有工作。如果右键某链接的时候选择“使用DownThemAll!保存下载链接”,会提示出错——插件不知道如何下载。 4、我注意了一下downthemall的具体使用情况,它会试图去解析一个网页上所有的下载链接并罗列出来,可是最需要的电视剧下载链接偏偏就没有解析,反倒是没有用的广告或者是网站上的电影分类链接被弄出来了。

注:其实我本帖的意思是有什么脚本或者是办法,可以在使用Firefox or chrome时,用控制台写入命令,然后会将下载链接列出来,然后手动把这些链接或是放到一个文本里,或者是放到离线迅雷里供以后下载。

这里我提供一个句式,但是不怎么好用,也许你可以修改好: 1、配合lixian-cli和bash脚本使用 jQuery('td:contains("mkv")').each(function(i,n){console.log(jQuery(n).find('a')[0].outerHTML.match(/(thunder:\/\/.*?)\"/)[1])})

2、配合网页离线使用 jQuery('td:contains("mkv")').each(function(i,n){console.log(jQuery(n).find('a')[0].innerHTML)})

linux0ne commented 10 years ago

@iambus 关于“也可以在lixian_plugins\parsers目录下建一个叫www66e.py的文件” 这个可否具体讲述一下怎么用? 文件我已建立完毕,那么如何启用,如何看到效果呢?

LeeroyDing commented 10 years ago

你更需要的可能是一个支持正则表达式的文本编辑器,而不是一段做这个的脚本

iambus commented 10 years ago
  1. 首先用鼠标全选选中的链接,然后从右键菜单里选择从迅雷离线下载选中的链接。如果没有反映的话按ctrl-shift-j,把控制台调出来,看看有没有错误。
  2. 加了www66e.py之后可以这样:

    lx a http://www.66e.cc/dsj/20140808/28109.htm
iambus commented 10 years ago

我稍微看了下,那个firefox扩展处理包含中文名的地址有问题。之前偷懒没处理。找时间我改一下。

linux0ne commented 10 years ago

@iambus lx a http://www.66e.cc/dsj/20140808/28109.htm 操作后的结果是:

o@Y-Lenovo:/opt/xunlei-lixian$ lx a http://www.66e.cc/dsj/20140808/28109.htm Traceback (most recent call last): File "/opt/xunlei-lixian/lixian_cli.py", line 63, in execute_command() File "/opt/xunlei-lixian/lixian_cli.py", line 60, in execute_command commandscommand File "/opt/xunlei-lixian/lixian_cli_parser.py", line 165, in parse return f(parser(args_list, _args, *_kwargs)) File "/opt/xunlei-lixian/lixian_commands/add.py", line 20, in add_task tasks = lixian_query.find_tasks_to_download(client, args) File "/opt/xunlei-lixian/lixian_query.py", line 434, in find_tasks_to_download base.query_once() File "/opt/xunlei-lixian/lixian_query.py", line 152, in query_once self.prepare() File "/opt/xunlei-lixian/lixian_query.py", line 137, in prepare self.commit() File "/opt/xunlei-lixian/lixian_query.py", line 115, in commit self.client.add_batch_tasks(map(lixian_encoding.try_native_to_utf_8, urls)) File "/opt/xunlei-lixian/lixian.py", line 686, in add_batch_tasks verification_code = self.read_verification_code() File "/opt/xunlei-lixian/lixian.py", line 358, in read_verification_code raise NotImplementedError('Verification code required') NotImplementedError: Verification code required

中文名的地址有问题??

iambus commented 10 years ago

需要输入验证码。wiki里提到了。

linux0ne commented 10 years ago

@iambus NotImplementedError: Verification code required

这里虽然提示是验证码的问题,但是我觉得根本不是这方面的问题。至少我用离线迅雷这么长时间了,从来没有在登陆过程中遇到要输入验证码的情况。

只有一种情况下我遇到过验证码,就是在批量下载一堆地址的时候,当链接被解析出来后,会在解析页面下方提示输入验证码。但这个过程是建立在已经登陆了离线迅雷的基础上的,这和你wiki里提到的内容完全不是一个过程 。

jkldgoefgkljefogeg commented 10 years ago

感觉OP是在胡搅蛮缠....问题和这个project不相关 notepad++用一下regex就把下载地址提取出来了 实在太懒了也可以用下载工具批量下载网页链接然后导出任务列表

以及很长时间了连续添加多个任务之后新任务会需要验证码 迅雷阳台也提到过了...当时说的限制今后会放宽....

iambus commented 10 years ago

多说无益,试一试。

linux0ne commented 10 years ago

@realdreams 注意你的措词 多学习 自己理解不上去的事儿就不要乱喷 注意 学习

linux0ne commented 10 years ago

@iambus 我认真的试验了你提到的每一个解决办法,并特别地关注了验证码的部分,真真是没有在官方离线登陆过程中遇到输入验证码的问题。 我也按wiki里的方式尝试了三种方法,仍然没有解决。 最后,我自己改动了一下上面提到过的JQ脚本,实现了链接的提取,然后再结合脚本使用之。

注:目前大部分电影类网站都是提供这种链接进行下载,但也一部分网站它的下载链接不是一层,而是多层的,在最后一层之前都是广告链接,所以上方的JQ脚本就算改动了,也似乎是对66e这类的网站设计有效果,其他的不见得都有效果,尤其是较早放出的新片的下载链接。