python 域名分析工具实现代码

yipeiwu_com6年前Python基础
代码如下:
复制代码 代码如下:

import sys, urllib
import datetime,time
def getDate():
strday=datetime.datetime.now().__str__()
strday=strday.split()[0]
return strday
#url = "http://www.kingnic.com/list/2009-06-16.txt"
def getUrl(dateStr=None):
baseUrl ="http://www.kingnic.com/list/"
if dateStr:
return baseUrl+dateStr+".txt"
thisDate = getDate();
if not thisDate:
print "Error Date!"
return None;
url = baseUrl+thisDate+".txt"
return url
def getSource(url):
source = urllib.urlopen(url).read()
return source

def save(source,filename="domains.txt"):
fp = open(filename,"w")
fp.write(source)
fp.close()
return True;
def loadList(fileName="domains.txt"):
fp = open("domains.txt","r")
source = fp.readlines()
fp.close()
return source;
def getPrefix(domain):
return domain.split('.')[0]
def getPostfix(domain):
return domain.split('.')[1]
def hasMidLine(domain):
if '-' in domain:
return True
else:
return False
def parser(domains):
max =4
min =0
keyword =('sky','see','job')
result=[]

len_num =0;
mid_line_num =0;

for domain in domains:
prefix = getPrefix(domain)
postfix = getPostfix(domain)
domainlen = len(prefix)
if (domainlen < min) or (domainlen > max):
len_num +=1
continue
if hasMidLine(prefix):
mid_line_num +=1
continue
result.append(domain)

print " log : \n"
print "all: \t",len(domains)
print "len not in [%s,%s] \t: %s"%(max,min,len_num)
print "contain '-' :\t",mid_line_num
print "remain:\t",len(result)
return result;

if __name__ == "__main__":
url = getUrl()
source = getSource(url)
save(source)
domains =loadList()
result = parser(domains)
save("".join(result),"result.txt")
print("\n\n\nfinished!!")

输出文件:
domains.txt : kingnic.com 据当天释放的 域名;
result.txt    : 符合过滤条件的域名;
log输出:
复制代码 代码如下:

all: 55500
len not in [4,0] : 55019
contain '-' : 32
remain: 449
finished!!

对 后缀、长度和有无“-”过滤,过滤条件有点少,其它以后如有需要再加。

相关文章

python内存管理机制原理详解

python内存管理机制原理详解

python内存管理机制: 引用计数 垃圾回收 内存池 1. 引用计数 当一个python对象被引用时 其引用计数增加 1 ; 当其不再被变量引用时 引用计数减 1...

python 多进程共享全局变量之Manager()详解

Manager支持的类型有 list,dict,Namespace,Lock,RLock,Semaphore,BoundedSemaphore,Condition,Event,Queue...

Pytorch GPU显存充足却显示out of memory的解决方式

今天在测试一个pytorch代码的时候显示显存不足,但是这个网络框架明明很简单,用CPU跑起来都没有问题,GPU却一直提示out of memory. 在网上找了很多方法都行不通,最后我...

简单的通用表达式求10乘阶示例

复制代码 代码如下:(lambda x: lambda n: x(x)(n))(lambda f: lambda n: 1 if n == 0 else n*f(f)(n-1))(10)...

python+django+sql学生信息管理后台开发

python+django+sql学生信息管理后台开发

一、功能 实现对学生对个人信息的增删查改 实现后台对所有学生信息的操作 二、平台 windows+pycharm(python开发工具) 三、逻辑框图 四、代码展示 此后台采用的是M...