代码之家  ›  专栏  ›  技术社区  ›  Basj

使用Pythonhois测试域名可用性

  •  2
  • Basj  · 技术社区  · 8 年前

    我正在成功使用 pythonwhois (与一起安装 pip install ... )检查的可用性。com域:

    import pythonwhois
    for domain in ['aaa.com', 'bbb.com', ...]:
        details = pythonwhois.get_whois(domain)
        if 'No match for' in str(details):   # simple but it works!
            print domain 
    

    但是:

    • 我不会被列入黑名单吗 whois 如果我做26*26*26~17000个请求,服务器会怎么样?
      (我正在测试 ???mail.com 具有 ? 存在 a..z )

    问题:有没有比做一个更好的方法来检查可用性 每个域的请求?


    编辑:作业在9572秒内完成,并且 here is the full list 表单中所有可用域的 ,截至2017年11月,如果任何人有兴趣启动电子邮件服务!

    1 回复  |  直到 8 年前
        1
  •  2
  •   silgon    8 年前

    你应该将你正在做的事情并行化。由于函数花费的大部分时间都在等待,因此可以一次验证大量工作(不限于处理器数量)。例子:

    import pythonwhois
    from joblib import Parallel, delayed, cpu_count
    n_jobs = 100 # works in parallel
    def f(domain):
        details = pythonwhois.get_whois(domain)
        if 'No match for' in str(details):   # simple but it works!
            print(domain)
            return domain
        else:
            return None
    
    domains= ['aaa.com', 'bbb.com', 'ccc.com', 'bbbaohecraoea.com']
    result = Parallel(n_jobs=n_jobs, verbose=10)(delayed(f)(domain) for domain in domains)
    
    # create a list with the available domains
    available_domains=[domains[idx] for idx,r in enumerate(result) if r!=None]
    print(available_domains)
    # Result
    # ['bbbaohecraoea.com']
    
    推荐文章