Python 3学习笔记(4):通过whois生成通讯录实例

本文介绍如何使用WHOIS协议查询域名注册者信息,并利用Python的re模块解析返回的数据,最终将解析出的名称、地址、城市和电话等信息保存到CSV文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        实例实现的主要功能:

        通过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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值