Python批量查询域名是否被注册过
step1. 找一个单词数据库
这里有一个13万个单词的
http://download.csdn.net/detail/u011004567/9675906
新建个mysql数据库words,导入words里面就行
step2.找个查询接口
这里我用的是http://apistore.baidu.com/astore/serviceinfo/27586.html
step3. 执行Python脚本
# -*- coding: utf-8 -*- ''' 域名注册查询 ''' __author__ = 'Jimmy' from sqlalchemy import Column, String,Integer, create_engine from sqlalchemy.orm import sessionmaker from sqlalchemy.ext.declarative import declarative_base import requests import json from html.parser import HTMLParser request_failure = [] domain_available = [] def writeToText(list,fn): file = open(fn, 'w') file.write(str(list)) file.close() class bodyJSON(HTMLParser): tag = False def handle_starttag(self, tag, attr): if tag == 'body': self.tag = True def handle_endtag(self, tag): if tag == 'body': self.tag = False def handle_data(self, data): if self.tag: self.data = data def getJSON(self): return self.data Base = declarative_base() class Words(Base): # 表的名字: __tablename__ = 'words' # 表的结构: ID = Column(Integer(), primary_key=True) word = Column(String(100)) exchange = Column(String(1000)) voice = Column(String(1000)) times = Column(Integer()) # 初始化数据库连接: engine = create_engine('mysql+mysqlconnector://root:846880@localhost:3306/words') # 创建DBSession类型: DBSession = sessionmaker(bind=engine) # 创建Session: session = DBSession() # 创建Query查询,filter是where条件,最后调用one()返回唯一行,如果调用all()则返回所有行: words = session.query(Words).filter(Words.ID).all() def searchInaaw8(words): length = len(words) print('====开始搜索...=====共%d个单词' %length) for i in range(0,length): word = words[i] url = 'http://www.aaw8.com/Api/DomainApi.aspx?domain=%s.com' % word.word r = requests.get(url) if r.status_code == 200: if r.headers['Content-Type'] == 'text/html': print('第%s个请求被拒绝,url = %s' % (i, url)) else: body = bodyJSON() body.feed(r.text) res = json.loads(body.getJSON()) if res['StateID'] == 210: print('第%d次,%s.com 未被注册' % (i, word.word)) domain_available.append(word.word) elif res['StateID'] == 0: print('第%d次,%s.com 查询接口出错' % (i, word.word)) request_failure.append(word.word) elif res['StateID'] == 211: pass print('第%d次,%s.com 已经被注册' % (i, word.word)) elif res['StateID'] == 213: print('第%d次,%s.com 查询超时' % (i, word.word)) request_failure.append(word.word) else: print('其他错误') request_failure.append(word.word) body.close() else: print('请求失败') request_failure.append(word.word) print('查询结束...') print('查询失败:') print(request_failure) writeToText(request_failure,'failure.text') print('未注册域名:') print(domain_available) writeToText(request_failure,'available.text') searchInaaw8(words)
step4:放到阿里云就可以搞事情啦
以上所述是小编给大家介绍的Python批量查询域名是否被注册过,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!