使用python批量获取域名的whois信息的方法

由于实验需要获取url的一些whois信息,上网搜了一些能够查询whois信息的网站,最后发现站长之家最全面,因此,这里记录一下如何通过站长工具来批量获取url信息的。
站长之家网址:http://tool.chinaz.com/

1.使用Python获取JS渲染后的全部html页面内容,也就是chrome中右键-检查里能看到的代码内容。当然,在此之前你需要安装配置一下python+selenium+chrome。

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('http://seo.chinaz.com/fanyi.youdao.com')
print(browser.page_source) # 这个就是包含所需信息的html代码

2.下面就是通过上述代码获得的html(截取的一部分),里面包含以下信息以下信息。我需要获取到其中的一些信息,比如域名年龄后的那段内容。

            <tr>
                <td class="_chinaz-seo-newtl _chinaz-seo-newh78 bg-grayf8"><i class="iconfont iconyuming pr5"></i>域名信息</td>
                <td class="_chinaz-seo-newtc _chinaz-seo-newh78">
                                        <div>
                        <span class="mr50">
                            注册人/机构:
                            <i class="color-63">
                                                                 Alibaba Cloud Computing (Beijing) Co., Ltd                                                            </i>
                        </span>
                        <span class="mr50">
                            注册人邮箱:
                            <a href="//whois.chinaz.com/reverse?host=**mainabuse@service.aliyun.com&amp;ddlSearchMode=1&amp;domain=fanyi.youdao.com" target="_blank">
                                <i class="color-63">
                                    **mainabuse@service.aliyun.com
                                                                    </i>
                            </a>
                        </span>
                    </div>
                    <div>
                        <span>
                            域名年龄:
                            <a href="//whois.chinaz.com/fanyi.youdao.com" target="_blank">
                                <i class="color-63">
                                    18年5月9天(过期时间为2021年06月15日)
                                </i>
                            </a>
                        </span>
                    </div>
                                    </td>
            </tr>

3.然后就可以通过selenium定位元素的方式或者什么方法获得想要的那一段信息。

一个例子:

1.图片是这个网址http://seo.chinaz.com/seo.chinaz.com的网页内容,红框内是我需要的信息。
在这里插入图片描述
2.以下代码是我获得这个信息的方式:

from selenium import webdriver, common

option = webdriver.ChromeOptions()
option.add_argument('headless') # 为了不打开网页的情况下获取内容
dirver = webdriver.Chrome(chrome_options=option)
dirver.get('http://seo.chinaz.com/seo.chinaz.com')
liuliang_webuv= dirver.find_elements_by_class_name("webuv")[0].text # 这个是网站流量
alexarank = dirver.find_elements_by_class_name("alexarank")[0].text # 这个是ALEXA世界排名
print(liuliang_webuv) #这个是网站流量
print(alexarank) # 这个是ALEXA世界排名

打印结果如下:
在这里插入图片描述
3.但是有一个问题,就是获取速度太慢了,如果我要批量获取一万条url的数据需要很久很久。

另外一种获取方式

以下是我通过request库和BeautifulSoup库获取whois.chinaz.com中的创建时间和过期时间信息的代码,通过这种方式我只能获取这两个信息,因为request库只能获取源代码不能获取js渲染后的HTML。但比上面的方法快很多。

import urllib.request
import re
from bs4 import BeautifulSoup
from distutils.filelist import findall

req_whois = urllib.request.urlopen('http://whois.chinaz.com/doucube.com')
# print(req_whois.read().decode()) # 打印出查询页整个html
contents = req_whois.read().decode()
bsObj = BeautifulSoup(contents,"html.parser")
m_Day = []

m_birth = bsObj.find("div", text="创建时间").next_sibling.find("span").get_text() #获取创建时间
m_sib = bsObj.find("div", text="过期时间").next_sibling.find("span").get_text() #获取过期时间
print(m_birth)
print(m_sib)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值