1.根据域名获取ip
注:这里的域名不能带http头
例如:www.baidu.com
def get_IP(domain):
try:
ip=socket.getaddrinfo(domain,'http')
return ip[0][4][0]
except:
return None
2.根据域名查询网址备案信息
2.1 爬虫获取
注:这个是利用站长工具爬取的数据,访问量过大可能会导致ip被封
"""根据域名查询网站备案信息 """
def get_icp_info(domain):
r=requests.session()
icpInfo={}
requ=r.post("http://icp.chinaz.com",{'type':'host','s':domain,'guid':'http://127.0.0.1/','code':'','havecode':0})
icpInfo=get_web_info(requ.content)
icpInfo["unit"]=str(icpInfo["unit"]).replace("\n查看截图","")
# icpInfo=json.dumps(icpInfo,ensure_ascii=False) #转化成标准json串可以酌情删去
return icpInfo
'''解析网站文本内容获取备案消息并保存 '''
def get_web_info(content):
doc=pq(content)
item=doc("p")
if item.eq(8).text()=="该域名被屏蔽": #检测网站是否被屏蔽查询
return None
else: #保存查询到的信息
icpInfo={}
icpInfo.update({'unit':str(item.eq(9).text()).replace('使用高级查询纠正信息','')})
icpInfo.update({'nature':str(item.eq(10).text())})
icpInfo.update({'webIcp':str(item.eq(11).text()).replace('\n查看截图','')})
icpInfo.update({'webName':str(item.eq(12).text())})
icpInfo.update({'webIndex':str(item.eq(14).text())})
# icpInfo.update({'verifyTime':str(item.eq(16).text())}) #该键值为网站备案的审核时间可酌情添加
return icpInfo
2.2 通过api获取
注:所需库python-whois
import whois
def get_whois_info(domain):
try:
info=whois.whois(domain) #Info返回了所有的whois查询信息,可根据需要选择想要提取的查询方法
whoisInfo={}
whoisInfo.update({'registrar':info['registrar']})
whoisInfo.update({'emails':info['emails']})
whoisInfo.update({'creationDate':str(info['creation_date'][0])})
whoisInfo.update({'expirationDate':str(info['expiration_date'][0])})
return whoisInfo
except:
return None