正则表达式批量提取页面迅雷专用链地址

By | 2013年6月5日

随着迅雷市场份额的扩大,越来越多的网站开始使用迅雷专用链作为首选的下载方式。尤其像电视剧这样的资源,一般网站都会以分集的形式列出来。但有时候某些网站却忘记了添加批量下载的功能,比如reizhi遇到的这个网站。在资源页面上虽然提供了全部资源的迅雷下载按钮,但每个文件会一个接一个的弹出下载,而不是批量任务,这一点甚为不便。

虽然本也想写个小程序搞定,但因为疏于使用,估计要花费不少时间,最终作罢。转念一想,其实这种问题使用正则表达式是极好的,下面我们就一起来看一下这个框架的源码。

http://notepad.cc/share/RMUZh9J6wc

通过分析不难发现,迅雷专用链的格式非常整齐,使用真则表达式进行提取是再好不过的。这个页面中每一个资源的地址重复了多次,我们取其中一个即可。先来看看正则表达式:

  • thunder:.*(?=" id="turl")

说明:首先是删选出迅雷专用链,以thunder:开头;.*代表任意字符重复任意次,用以匹配thunder://后面所接的字符串,(?=)是零宽断言,查找等号后面的字符串,找到后匹配它前面的内容(不包含自己)。零宽断言中等号内的部分" id="turl"用来限定同一个资源只取一次,并且过滤掉KK电影下载器的地址。

将这些地址复制到迅雷新建任务即可,从1-17集无一遗漏,无一重复。类似的网页也可以使用同样的方法,对正则表达式稍加修改即可。

附:

正则表达式30分钟入门 http://deerchao.net/tutorials/regex/regex.htm

正则表达式在线检测 http://zhengze.51240.com/

发表评论

电子邮件地址不会被公开。 必填项已用*标注