在Windows工作的时候,经常会用迅雷下载东西,如果速度慢或者没资源,尤其是一些比较冷门的视频,迅雷的VIP会员服务总能够帮上大忙。后来无意间发现了有个“迅雷VIP账号获取器”的软件,可以获取一些临时的VIP账号供使用,这可是个好东西,因为开通迅雷会员虽然不贵,但是我又不经常下载,所以老感觉有点浪费,而有了这个之后,我随时下点东西都可以免费用了。

简单的迅雷VIP账号获取器

简单的迅雷VIP账号获取器

最近转移到了Mac上,而Mac也有迅雷,但那个账号获取器是exe的,不能在Mac运行。本以为获取器的构造会很复杂,谁知道,经过抓包研究,发现那个账号获取器的原理极其简单,说白了,就是一个简单的爬虫,以下这两个网站提供账号,它就到相应的抓取账号而已:

http://yunbo.xinjipin.com/
http://www.fenxs.com

据此,我也用Python简单写了一个,主要是方便我在Mac使用。读者如果有需要,也可以下载使用,代码兼容2.x和3.x的版本。主要的库是requests和re,pandas和sys的使用只不过是为了更加人性化。本来想用Tkinter写一个简单的GUI的,但是想想看,还是没必要了~~

# -*- coding:utf-8 -*-
'''
2016.01.21更新:修改了正则表达式的写法,使得更加通用;增加了一个账号来源。
'''
import requests as rq
import re

def get1():
    source = 'http://yunbo.xinjipin.com/articlelist/?33.html'
    web = rq.get(source).text
    url = re.findall('<li><p><a href=\"(.*?)\" title=', web)[0]
    web = rq.get('http://yunbo.xinjipin.com%s'%url)
    web.encoding = 'gb2312'
    web = web.text
    return re.findall(u'迅雷.*?([a-zA-z0-9\:]+?)[密码]+?([a-zA-z0-9]+?)</div>', web)

def get2():
    source = 'http://www.fenxs.com'
    web = rq.get(source).text
    url = re.findall(u'<h2><a href=\"(.*?)\" title=.*?迅雷会员账号分享.*?</a></h2>', web)[0]
    web = rq.get(url).text
    return re.findall(u'迅雷.*?([a-zA-z0-9\:]+?)[密码]+?([a-zA-z0-9]+?)<br />', web)

def get3():
    source = 'http://xlfans.com'
    web = rq.get(source).text
    url = re.findall(u'<h2><a href=\"(.*?)\" title=.*?迅雷会员账号分享.*?</a></h2>', web)[0]
    web = rq.get(url).text
    return re.findall(u'迅雷.*?([a-zA-z0-9\:]+?)[密码]+?([a-zA-z0-9]+?)<br />', web)

if __name__ == '__main__':
    import pandas as pd #方便输出显示
    import sys #判断系统版本

    print u'\n============简单的迅雷账号获取器============\n           By http://kexue.fm\n'
    while True:
        if sys.version_info[0] < 3:
            s = raw_input(u'请选择数据源(输入s1或s2或s3,输入其他则退出): ')
        else:
            s = input(u'请选择数据源(输入s1或s2或s3,输入其他则退出): ')
        if s == 's1':
            print pd.DataFrame(get1(), columns=[u'账号', u'密码'])
        elif s == 's2':
            print pd.DataFrame(get2(), columns=[u'账号', u'密码'])
        elif s == 's3':
            print pd.DataFrame(get3(), columns=[u'账号', u'密码'])
        else:
            break

转载到请包括本文地址:https://kexue.fm/archives/3594

更详细的转载事宜请参考:《科学空间FAQ》

如果您还有什么疑惑或建议,欢迎在下方评论区继续讨论。

如果您觉得本文还不错,欢迎分享/打赏本文。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!

如果您需要引用本文,请参考:

苏剑林. (Jan. 20, 2016). 《简单的迅雷VIP账号获取器(Python) 》[Blog post]. Retrieved from https://kexue.fm/archives/3594

@online{kexuefm-3594,
        title={简单的迅雷VIP账号获取器(Python)},
        author={苏剑林},
        year={2016},
        month={Jan},
        url={\url{https://kexue.fm/archives/3594}},
}