获取迅雷会员工作流

816 查看

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 更新:更新正则表达式;解决某些时候匹配不到的问题。