谁在查询和解析域名注册信息。
python-whois的Python项目详细描述
目标
- 创建一个简单的可导入python模块,该模块将生成解析的 谁是给定域的数据。
- 能够为所有流行的tld(com,org,net,…)提取数据。
- 直接查询whois服务器而不是通过 中间Web服务和其他许多服务一样。
- 与python 2&3一起使用
示例
>>>importwhois>>>w=whois.whois('webscraping.com')>>>w.expiration_date# dates converted to datetime objectdatetime.datetime(2013,6,26,0,0)>>>w.text# the content downloaded from whois serveru'\nWhois Server Version 2.0\n\nDomain names in the .com and .net...'>>>printw# print values of all found attributescreation_date:2004-06-2600:00:00domain_name:[u'WEBSCRAPING.COM',u'WEBSCRAPING.COM']emails:[u'WEBSCRAPING.COM@domainsbyproxy.com',u'WEBSCRAPING.COM@domainsbyproxy.com']expiration_date:2013-06-2600:00:00...
安装
从pypi安装:
$ pip install python-whois
或从存储库中签出最新版本:
$ hg clone https://bitbucket.org/richardpenman/pywhois
注意,然后需要手动安装futures模块,该模块允许同时支持python 2&3:
$ pip install futures
为python 2&3运行测试用例:
$ python -m unittest discover test ............. ---------------------------------------------------------------------- Ran 13 tests in 0.812s OK $ python3 -m unittest discover test ............. ---------------------------------------------------------------------- Ran 13 tests in 1.431s OK
SOCKS代理支持要求:
$ pip install PySocks ............ --------------------------------------------------------------------- $ exportSOCKS=socksproxy.someplace.com:8080
有问题吗?
欢迎拉取请求!
多亏了许多人已经发送了额外的tld补丁。如果你想添加或修复一个tld,这很简单。 参见whois/parser.py
中的示例域基本上,每个TLD的格式与以下类似:
classWhoisOrg(WhoisEntry):"""Whois parser for .org domains """regex={'domain_name':'Domain Name: *(.+)','registrar':'Registrar: *(.+)','whois_server':'Whois Server: *(.+)',...}def__init__(self,domain,text):iftext.strip()=='NOT FOUND':raisePywhoisError(text)else:WhoisEntry.__init__(self,domain,text)