python 域名分析工具实现代码


Posted in Python onJuly 15, 2009

代码如下:

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使用稀疏矩阵节省内存实例
Jun 27 Python
简单介绍Ruby中的CGI编程
Apr 10 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
对python中使用requests模块参数编码的不同处理方法
May 18 Python
Python返回数组/List长度的实例
Jun 23 Python
python3实现字符串的全排列的方法(无重复字符)
Jul 07 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
Mar 01 Python
利用python numpy+matplotlib绘制股票k线图的方法
Jun 26 Python
用python求一个数组的和与平均值的实现方法
Jun 29 Python
Python Pandas 如何shuffle(打乱)数据
Jul 30 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
python实现经典排序算法的示例代码
Feb 07 Python
python 自动提交和抓取网页
Jul 13 #Python
python self,cls,decorator的理解
Jul 13 #Python
python 解析html之BeautifulSoup
Jul 07 #Python
打印出python 当前全局变量和入口参数的所有属性
Jul 01 #Python
python 查找文件夹下所有文件 实现代码
Jul 01 #Python
python 运算符 供重载参考
Jun 11 #Python
python getopt 参数处理小示例
Jun 09 #Python
You might like
古巴咖啡 Cubita琥爵咖啡 独特的加勒比海风味咖啡
2021/03/06 新手入门
PHP 批量更新网页内容实现代码
2010/01/05 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
JS、CSS以及img对DOMContentLoaded事件的影响
2014/08/12 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
JS延时提示框实现方法详解
2015/11/26 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
你应该知道的python列表去重方法
2017/01/17 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Python入门必须知道的11个知识点
2018/03/21 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
Python中私有属性的定义方式
2020/03/05 Python
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
小米俄罗斯授权商店:Xiaomi俄罗斯
2019/12/08 全球购物
JSP&Servlet技术面试题
2015/05/21 面试题
成人教育自我鉴定
2013/11/01 职场文书
主治医师岗位职责
2013/12/10 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
2014年团工作总结
2014/11/27 职场文书
党校个人总结
2015/03/04 职场文书
2015年售后服务工作总结
2015/04/25 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
Python Numpy之linspace用法说明
2021/04/17 Python
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
教你如何用Python实现人脸识别(含源代码)
2021/06/23 Python