属性错误:模块"whois"没有属性"whois"



我正在运行我的ML代码并得到这个错误-

Enter website name=> www.google.com
Traceback (most recent call last):
File "Dphishing.py", line 12, in <module>
p2.category2(website)
File "C:xampphtdocsDetect_Phishing_Websitep2.py", line 8, in category2
page = whois.whois(website)
AttributeError: module 'whois' has no attribute 'whois'
我的代码是:
# -*- coding: utf-8 -*-
import p1
import p2
import p3
import p4
import pandas as pd
#import numpy as np
website = str(input("Enter website name=> "))
p1.category1(website)
p2.category2(website)
p3.category3(website)
p4.category4(website)

read = pd.read_csv(r'C:UsersAnushreeDesktopcollege4th year projectDetect_Phishing_Websitephishing5.txt',header = None,sep = ',')
read = read.iloc[:,:-1].values
dataset = pd.read_csv(r'C:UsersAnushreeDesktopcollege4th year projectDetect_Phishing_WebsiteTraining Dataset1.csv')
X = dataset.iloc[:,:-1].values  
y = dataset.iloc[:,-1].values
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2,random_state = 1001)
from sklearn.ensemble import RandomForestRegressor
regressor = RandomForestRegressor(n_estimators = 10,criterion = "mse",random_state = 2)
regressor.fit(X_train,y_train)                             
y_pred = regressor.predict(X_test)

from sklearn.model_selection import cross_val_score
accuracy = cross_val_score(estimator = regressor,X=X_train,y=y_train,cv = 5)
accuracy.mean()
accuracy.std()

Detect_phishing_website = regressor.predict(read)
if Detect_phishing_website == 1:
print("legitimate website")
elif Detect_phishing_website == 0:
print ('suspicious website')
else:
print('phishing website')

文件p2.py的代码为:

import re
import whois
def category2(website):

file_obj = open(r'C:UsersAnushreeDesktopcollege4th year projectDetect_Phishing_Websitephishing5.txt','a')
#8 Domain Registration Length
page = whois.whois(website)
if type(page.expiration_date) == list:
domain_reg_len = (page.expiration_date[0] - page.creation_date[0]).days
else:
domain_reg_len = (page.expiration_date - page.creation_date).days
#print domain_reg_len
if domain_reg_len <= 365:
file_obj.write('-1,')
else:
file_obj.write('1,')
#9 Using Non-Standard Port 
match_port = re.search(':[//]+[a-z]+.[a-z0-9A-Z]+.[a-zA-Z]+:([0-9#]*)',website)
if match_port:
print (match_port.group())
if match_port.group(1) == '#':#represent multiple ports are active on url
file_obj.write('-1,')
else:
file_obj.write('1,')
else:
file_obj.write('1,')
file_obj.close()

我已经尝试卸载whois,然后使用命令pip install python-whois重新安装python-whois。但这并没有帮助解决错误。

我怎么知道哪里出了问题,我怎么能纠正它?

错误原因:
您的系统没有安装whois命令。
Ubuntu: Usesudo apt install whois
Windows:从这里下载并安装

首先卸载pip uninstall whoispip uninstall python-whoiswhois模块

解决方案1:使用python-whois

pip install python-whois安装python-whois
然后确保您已经在您的机器上安装了whois命令。
那么你的代码应该可以工作了。

解决方案2:使用whois

在您的机器上安装whois命令。如果你使用的是ubuntusudo apt install whois就可以了。
使用pip install whois安装whois模块,
然后在代码中使用whois.query()而不是whois.whois()

来源

相关内容

  • 没有找到相关文章

最新更新