mac下的P2P下载工具目前只有迅雷了,可是大家都知道mac下只有“会员迅雷”才能下载,没会员就是个废物。对于冷门资源离线下载还是是非常非常有用的,高速下载对速度提升也是显而易见。

想必都不会为了临时下载一个资源去开一个会员,肯定有过上网搜迅雷会员的经历;这里教大家如何把这个过程变成一个自动化的工作。如果长期使用迅雷的话,建议还是开会员去;本教程仅供学习使用,用完请于24小时之内删除

先看看效果:


效果图

获取免费迅雷账号的地址

随便百度一下,就能找到一堆免费迅雷会员分享的地址,具体就不指出了;然后把每天最新的账号分享信息抓取出来。

这里使用python,可以用pyquery来解析网页,然后一个正则匹配就拿到了结果:

#! /usr/bin/python
# encoding: utf-8

import sys, urllib, re
from pyquery import PyQuery as pq
from workflow import Workflow


_url = \'http://www.xunleihuiyuan.net/\'

def main(wf):
    args = wf.args

    results = _get_from_web()
    map(lambda (x,y):wf.add_item(u\'账号:%s\' % x, u\'密码:%s\' % y, arg=u\'%s %s\' %(x,y), valid=True), results)
    wf.send_feedback()

def _get_today_url():
    home = urllib.urlopen(_url).read().decode(\'utf-8\')
    return pq(home)(\'.cate1 .post-title a\')[0].get(\'href\')

def _get_from_web():
    page = urllib.urlopen(_get_today_url()).read().decode(\'utf-8\')
    results = r = pq(page)(\'.formattext div\').text()
    return re.findall(ur\'([a-z0-9A-Z:]{6,})\\D+(\\d+)\', results)

用Alfred workflow展示出来

使用python的alfred workflow sdk的话非常简单,文档在这里

这里要处理的一个问题是,账号和密码如何简单滴传递出来;一起放在剪切版肯定不太合适。幸好alfred自带剪切版历史的功能,我们分别两次把账号和密码复制到剪切版,要使用的时候,激活cmd + option + c然后从剪切版历史里面选择账号密码即可:效果如下:

然后,按下cmd + 2得到账号,cmd + 3得到密码!具体代码比较简单:

import subprocess,time
query = \"{query}\"
def copy_osx(text):
        p = subprocess.Popen([\'pbcopy\', \'w\'], stdin=subprocess.PIPE, close_fds=True)
        p.communicate(input=text.encode(\'utf-8\'))
account, pwd = query.split()
copy_osx(account)
time.sleep(0.3)
copy_osx(pwd)

这样,一个简单的迅雷会员获取工作流就完成了!

2015/12/2 更新:更新正则表达式;解决某些时候匹配不到的问题。