实例实现的主要功能:
通过whois协议查询域名,得到注册者的信息,解析出名称、地址、城市和电话后存到whois.csv文件中。
1、 寻找网站所有者
为了找到网站的所有者,我们可以使用WHOIS协议查询域名的注册者是谁。Python中有一个针对该协议的封装库,
地址为https://pypi.python.org/pypi/python-whois ,我们可以通过
pip install whois进行安装。
2、 re模块和正则表达式
Python通过re模块提供对正则表达式的支持,使用re的一般步骤是先将正则表达式的字符串形式编译成Pattern实例,然后使用Pattern实例处理文本并获得匹配结果,最后使用Match实例获得信息,生成通讯录列表。
3、 代码
Whois.py代码如下
#coding:utf-8
import whois
import time
import re
import csv
Organizations = ['baidu.com','alibaba.com', 'qq.com', '163.com', '139.com', 'google.com', 'csdn.com']
nameRegex=re.compile(r"AdminOrganization:(.*)\nAdmin Street:(.*)\nAdmin City:(.*)\n")
phoneRegex=re.compile(r"AdminPhone:(.*)\n")
rows=[]
headers=['Name','Address','City','Phone']
for Organization in Organizations:
#print(Organization.title)
try:
my_str=whois.whois(Organization).text
except:
print("whoiswrong!")
else:
match=nameRegex.search(my_str)
ifmatch!=None:
name=match.group(1)
addr=match.group(2)
city=match.group(3)
phone=phoneRegex.findall(my_str)
content=(name,addr,city,phone)
print(content)
rows.append(content)
time.sleep(2)#延时2秒
#保存到csv
with open('whois.csv','w') as f:
f_csv=csv.writer(f,)
f_csv.writerow(headers)
f_csv.writerows(rows)