2009年11月27日星期五

一个 ed2k 的 wrapper

不知道有多少人和我一样,专门有一个机器用于下载和储存;装的是 Ubuntu,通过 ssh 登录后使用 ed2k 来下载 VeryCD.com 上的资源。不过有一个问题,ed2k 只能一个一个链接地添加,复制-粘贴从来就是一个体力活,而且传递给 ed2k 的参数必须以引号包围,如 ed2k 'ed2k://some_link' 才能完成添加下载任务的工作。

为此我写了一个脚本,给 ed2k 加一个 wrapper,传递一个无需引号引用、 VeryCD.com 上任意页面的网址,然后就自动把该页面上所有的 ed2k links 添加到 amuled 的下载列表中。这个脚本用的是 Python,其中使用到了 BeautifulSoup 解析 HTML。后来发现 BeautifulSoup 并不好使,会出现莫名其妙的错误,就改用了 libxml2dom,事实上这个东西比 BeautifulSoup 更好使。

这个脚本也有一个问题,就是不能选择性地下载页面中的某些文件。为了解决这个问题,这天我给这个脚本修改了一下,也可以接受一个文件名作为参数;而可以通过建立一个临时的文本文件,每一行就是一个 ed2k link,保存后把文件名当作参数传递给这个脚本则可。

脚本比较简单,45行代码也不多,可以再缩减几行,不过为了可读性,就没有这般干。在使用这个脚本之前,需要确保为你的 python 装上 libxml2dom。

libxml2dom 的下载地址:http://www.boddie.org.uk/python/libxml2dom.html
脚本保存在 pastein.com 上:http://pastebin.com/f7e4b1cde

标签: , ,

1 条评论:

Blogger Unknown 说...

家中一台 Karmic Kaola
1T 硬盘, 回头试试您的脚本 ;
非常感谢
:-)

2009年11月30日 11:07  

发表评论

订阅 博文评论 [Atom]

<< 主页