@@ -6,7 +6,7 @@
@Time : 2023/03/08 17:39:34
@License : Copyright © 2017-2022 liuyuqi. All Rights Reserved.
@Desc : enter point
-searchdomain generate --lang zh --keyword go --position prefix
+searchdomain generate --lang zh --keyword gpt,go --position prefix --domain io,com,cn
searchdomain search --
'''
@@ -17,13 +17,13 @@ import sys
if __name__== "__main__":
args = parse_args()
if args.get("command","")=="generate":
- if args.get("lang","en"):
- generateDomain = GenerateEnDomain()
- elif args.get("lang", "zh"):
- generateDomain = GenerateDomain()
+ if args.get("lang","en")=="en":
+ generateDomain = GenerateEnDomain(params=args)
+ elif args.get("lang", "en")=="zh":
+ generateDomain = GenerateDomain(params=args)
generateDomain.run()
elif args.get("command","")=="search":
- serachdomain = SearchDomain(debug=True, export_all=False)
+ serachdomain = SearchDomain(params=args, debug=True, export_all=True)
serachdomain.run()
elif args.get("command","")=="version":
# print(__verison__)
@@ -17,4 +17,4 @@ config= {
"default": DevelopmentConfig,
"develop": DevelopmentConfig,
"production": ProductionConfig
-}
+}
@@ -14,12 +14,15 @@ import csv
class GenerateDomain(object):
- def __init__(self):
+ def __init__(self, params: dict,):
'''初始化列表'''
self.initPinYin=[]
- self.composePinYin=[]
+ self.params = params
+ self.keyword= self.params['keyword'].split(',')
# self.yuming=["com","cn","me","net"]
- self.yuming=["com"]
+ self.yuming = self.params["domain"].split(',')
+
+ self.composePinYin=[]
self.composeDomain=[]
def run(self):
@@ -32,8 +35,11 @@ class GenerateDomain(object):
self.initPinYin.append(pinyin)
for i in self.initPinYin:
- for j in self.initPinYin:
- self.composePinYin.append(i+j)
+ for j in self.keyword:
+ if self.params["position"]=="prefix":
+ self.composePinYin.append(i+j)
+ else:
+ self.composePinYin.append(j+i)
for i in self.composePinYin:
for j in self.yuming:
@@ -14,26 +14,30 @@ import csv
class GenerateEnDomain(object):
+ def __init__(self, params: dict):
self.initList=[]
+ self.params =params
# self.keyword=["chat","ai"] # chat+xx
- self.keyword=["ai"] # xx + ai
# self.yuming=["com","cn","me","net","co","run","wiki","tech","org","info","vip","cc","app","io","one","tk","xyz"]
+ self.yuming=self.params["domain"].split(',')
- with open(("res3.csv"), "r", encoding="utf-8") as f:
+ with open((r"data/b.csv"), "r", encoding="utf-8") as f:
csv_data = f.readlines()
for row in csv_data:
self.initList.append(row.strip())
-
for i in self.initList:
for j in self.keyword:
- # self.composePinYin.append(j+i)
+ if self.params['position']=="prefix":
@@ -15,9 +15,15 @@ def parse_args():
parser = argparse.ArgumentParser(description='search domain')
parser.add_argument('command', help='command: generate, search', choices=['generate','search', 'help','version'] , default='help')
parser.add_argument('--export_all', action='store_true', help='export all domain')
+ parser.add_argument(
+ "--input", help="set input domain list file,eg: domain.txt", type=str, default="domain.txt")
+ "--output", help="set output domain result list file,eg: result.txt", type=str, default="result.txt")
parser.add_argument('--lang', choices=['zh', 'en'], default='en',help='language')
- parser.add_argument('--keyword', default='',help='input a keyword')
- parser.add_argument('--positon', default='prefix',choices=['prefix', 'suffix'], help='choose generate str positon')
+ parser.add_argument('--domain', default='com',help='input some domain, plilt with ","')
+ parser.add_argument('--keyword', default='', help='input some keyword, spilt with ","')
+ parser.add_argument('--position', default='prefix',choices=['prefix', 'suffix'], help='choose generate str positon')
args = parser.parse_args()
# remove None
@@ -7,7 +7,7 @@ from . import db
class SearchDomain(object):
"""search avaliable domain and save result"""
- def __init__(self, debug=False, export_all=False):
+ def __init__(self, params: dict, debug=False, export_all=True):
初始化
debug 调试模式
@@ -15,17 +15,10 @@ class SearchDomain(object):
return:
super(SearchDomain, self).__init__()
self.export_all=export_all
- parser = argparse.ArgumentParser(description='Demo of argparse')
- parser.add_argument(
- "--input", help="set input domain list file,eg: domain.txt", type=str, default="domain.txt")
- "--output", help="set output domain result list file,eg: result.txt", type=str, default="result.txt")
- args = parser.parse_args()
- if args.input:
- self.input = args.input
- if args.output:
- self.output = args.output
+ self.input=params["input"]
+ self.output=params["output"]
if debug == True:
logging.basicConfig(level=logging.DEBUG)