使用python爬取号码归属地列表,制作握手包破解字典

前段时间抓了一个握手包,使用网上的字典没有破解,个人猜想现在大部分人会使用自己的手机号码作为密码,但从网上找到的字典没有专门针对某个市的电话号码,就想自己制作一个。

到网上搜了一下号码归属地数据库,免费的更新时间已经过去好几年了,又不想自己花钱,发现部分网站提供了在线查询功能,且数据比较新,就想可以用穷举法得到号码归属地数据库。

因为刚开始学习python,这是第一篇学习笔记,程序还有很多不规范的地方,请看到的大神们提出改进建议。

最后结果是进行了32万次页面请求,属于我们市的号码条数1932条,生成破解字典1932万条记录,顺利找到密码。

如非特殊需要,请慎重运行程序,会对数据查询网站造成冲击,我是在晚上开机6个小时才跑完的。

import requests
import re
#电话号码列表,不多,手写
phonelist = [134,135,136,137,138,139,147,150,151,152,157,158,159,178,182,183,184,187,188,186,185,156,131,130,155,132,176,133,153,181,189,177]
dzlist = []   #  定义前7位的列表,初始值为空
for i in phonelist:
    for j in range(0, 10000):
        url = 'http://www.ip138.com:8080/search.asp?mobile=' + str(i) + str("%04d" % j) + '&action=mobile'
        html = requests.get(url).content
        html_doc = str(html, 'gb2312')  #读取每个7位数的返回文本
        if str('某某市') in html_doc:   #如果返回文本包含某某市,则添加到列表中
            dzlist = dzlist + re.findall(r'class=tdc2>(\d\d\d\d\d\d\d) <a href',html_doc)
# 下面根据列表生成字典
pjzd = open(r'd:\phone_zd.txt','a')
for m in dzlist:
    for n in range(0,10000):
        pjzd.write(m+"%04d" %n+'\n')
pjzd.close()



阅读更多
个人分类: python学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭