查询域名是否被注册

#!/usr/bin/env python
#-*-coding:utf8-*-
# 测试版本python2.7
 
import urllib2 #是python2.7自带的库,直接import即可。作用:模拟请求。
from multiprocessing import Pool  #multiprocessing包是Python中的多进程管理包  Pool是其中的类。
import itertools as its  #itertools是迭代器 =its

def writelog(mfile,message): #定义一个函数-写文件:writelog。mfile:文件名,message:文件内容
    with open(mfile,'a+') as f:#打开文件名mfile,a+是打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
        f.write(message)#向mfile中追加写入message内容
 
def createdomain(ws,num,sfx):#定义一个函数-创建域名:ws:迭代对象;num:关键字参数,用于指定重复生成序列的次数;sfx:为传入的固定值
    r = its.product(ws,repeat=num)#用于求多个可迭代对象的笛卡尔积,它跟嵌套的 for 循环等价
    for i in r: #逐项读取列表,实时生成的数据
        domain = ''.join(i) + sfx#将变量i和参数sfx进行组合,赋值给变量domain
        yield domain#yield 是一个类似 return 的关键字,只是这个函数返回的是个生成器。这里返回domain的值

def checkdomainstatus(domain):#定义一个函数-检测域名状态:domain:需要输入的参数,本次代表的是域名
    API = "http://panda.www.net.cn/cgi-bin/check.cgi?area_domain="#API地址
    url = API + domain#访问的URL链接,通过API和domain进行控制
    try:
        xhtml = urllib2.urlopen(url,timeout=5).read()  #打开网页,读取内容
    except: #如果没有正确读取内容,直接返回
        return
    r1 = xhtml.find(r'<original>211')      # 字符串表示 已经被注册
    r2 = xhtml.find(r'<original>210')      # 字符串表示 还未被注册
    if r2 != -1:#如果存在未注册的域名
        # print domain
        writelog('domain_enable.txt',domain+'\n')#调用定义的writelog函数,将domain写入domain_enable.txt文件中

if __name__ == "__main__":#__main__是当前模块名,使用if这句话,表示是否直接运行该.py文件
    words = 'abcdefghijklmnopqrstuvwxyz'#定义一个字符串,里面是字母
    len = 5#定义长度为5
    suffix = '.com'#定义后缀变量为.com
    domains = createdomain(words,len,suffix)#调用cretedomain函数,获取word中随机的5个字符,加上后缀组成域名
    task_pool = Pool(5)#进行多进程访问,进程数为5
    results = task_pool.map(checkdomainstatus,domains)#将函数checkdomainstatus作用于序列(domains)的每个元素,并用一个列表来提供返回值;如果checkdomainstatus为None,checkdomainstatus表现为一个身份函数,返回一个含有每个序列中元素集合的n个元组的列表。
    task_pool.close()#关闭多进程,之后不会有子进程加入
    task_pool.join()#等待所有子进程结束

参考连接:https://github.com/JaesonCheng/register_domain/blob/master/register_domain.py

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值