我正在从事一个名为“域列表”的项目,基本上是获取域名并尝试获取Org的详细信息。有一个名为lookup.icann.org的网页,我们可以获得信息,但这是一个人工过程,需要很长时间。我想通过python包实现自动化,我得到了结果,但是输出是JSON格式的。
查找有关从JSON到JSON输出创建数据from的帮助。
我的python代码如下
#pip install python-whois
#pip install pandas
import whois
import pandas as pd
import json
import ast
# test with Google domain name
data = "gmail.com"
w = whois.whois(data)
mystr = w
val = ast.literal_eval(mystr)
val1 = json.loads(json.dumps(val))
val2 = val1['domain_name'][0]['registrar'][0]
print (pd.DataFrame(val2, columns=["domain_name","registrar"]))
print(w)产出如下
{
"domain_name": [
"GMAIL.COM",
"gmail.com"
],
"registrar": "MarkMonitor, Inc.",
"whois_server": "whois.markmonitor.com",
"referral_url": null,
"updated_date": "2021-07-11 09:36:42",
"creation_date": [
"1995-08-13 04:00:00",
"1995-08-13 07:00:00"
],
"expiration_date": [
"2022-08-12 04:00:00",
"2022-08-11 07:00:00"
],
"name_servers": [
"NS1.GOOGLE.COM",
"NS2.GOOGLE.COM",
"NS3.GOOGLE.COM",
"NS4.GOOGLE.COM",
"ns3.google.com",
"ns2.google.com",
"ns1.google.com",
"ns4.google.com"
],
"status": [
"clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited",
"clientTransferProhibited https://icann.org/epp#clientTransferProhibited",
"clientUpdateProhibited https://icann.org/epp#clientUpdateProhibited",
"serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited",
"serverTransferProhibited https://icann.org/epp#serverTransferProhibited",
"serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited",
"clientUpdateProhibited (https://www.icann.org/epp#clientUpdateProhibited)",
"clientTransferProhibited (https://www.icann.org/epp#clientTransferProhibited)",
"clientDeleteProhibited (https://www.icann.org/epp#clientDeleteProhibited)",
"serverUpdateProhibited (https://www.icann.org/epp#serverUpdateProhibited)",
"serverTransferProhibited (https://www.icann.org/epp#serverTransferProhibited)",
"serverDeleteProhibited (https://www.icann.org/epp#serverDeleteProhibited)"
],
"emails": [
"abusecomplaints@markmonitor.com",
"whoisrequest@markmonitor.com"
],
"dnssec": "unsigned",
"name": null,
"org": "Google LLC",
"address": null,
"city": null,
"state": "CA",
"zipcode": null,
"country": "US"
}所需的输出数据,因此我可以导出到excel/csv文件
domain_name|registrar|creation_date|expiration_date|name|org|address|city|zipcode|country
gmail.com|MarkMonitor, Inc|1995-08-13 07:00:00|2022-08-12 04:00:00|null|Google LLC|null|null|CA|null|USA谢谢你的帮助
我已经修改了我的代码,现在我能够得到答案并尝试想要的答案,但是如何分割和创建一个dataframe?
import whois
import pandas as pd
data = "gmail.com"
w = whois.whois(data)
mystr = (w.domain_name,
w.registrar,
w.emails,
w.name,
w.org,
w.address,
w.city,
w.zipcode,
w.country)
print(mystr)上述代码的输出
(['GMAIL.COM', 'gmail.com'], 'MarkMonitor, Inc.', ['abusecomplaints@markmonitor.com', 'whoisrequest@markmonitor.com'], None, 'Google LLC', None, None, None, 'US')发布于 2022-02-05 18:43:05
你可以试试这个:
import pandas as pd
import whois
urls = ["gmail.com", "networksolutions.com", "enom.com"] # Examples
data = {
"domain_name": [],
"registrar": [],
"emails": [],
"name": [],
"org": [],
"address": [],
"city": [],
"zipcode": [],
"country": [],
}
for url in urls:
w = whois.whois(url)
for key in data.keys():
data[key].append(w[key])因此:
print(pd.DataFrame(data))
# Outputs
domain_name registrar ... zipcode country
0 [GMAIL.COM, gmail.com] MarkMonitor, Inc. ... None US
1 NETWORKSOLUTIONS.COM Network Solutions, LLC ... 20171-6126 US
2 [ENOM.COM, enom.com] ENOM, INC. ... REDACTED FOR PRIVACY CAhttps://stackoverflow.com/questions/70970261
复制相似问题