python 获取域名的IP、注册时间、过期时间

import requests
import json
import asyncio
import aiohttp
from bs4 import BeautifulSoup
import datetime

result1={"baidu":{"domain_name":"www.baidu.com"}}

result2=[]
async def get_title(k,i):
    if 'http://' in  i :
        i = i[7:]
    url = 'http://seo.chinaz.com/?q={}'.format(i)
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as resp:
            text = await resp.text()
    soup = BeautifulSoup(text, 'html.parser')

    try:
        ret_time = soup.find('div', class_='w97-0 brn col-hint02 pl0').text.split('于')[1].split(',')
        ctime = ret_time[0][:-1].replace('年', '-').replace('月', '-')+ ' 00:00'
        etime = ret_time[1].split('为')[1][:-2].replace('年', '-').replace('月', '-')+ ' 00:00'
        try:
            lis = soup.find('div', class_='brn ipmW').text
            lis_ip = (lis[3:].split('['))[0]
        except Exception as e:
            print("没有IP", e)
            lis_ip = '0.0.0.0'
        a = {k:{'name':i,'ip':lis_ip,'ctime':ctime,'etime':etime,'comment':k}}
        result2.append(a)
    except Exception as e:
        print("域名没查到",e)
        b = {k:{'name':i,'ipd':'0.0.0.0','ctime': datetime.datetime.now().strftime('%Y-%m-%d %H:%M') ,'etime':datetime.datetime.now().strftime('%Y-%m-%d %H:%M'),'comment':k }}
        result2.append(b)

loop = asyncio.get_event_loop()
fun_list = (get_title(k=k,i=n)   for index, i in enumerate(result1) for k, v in i.items() for m, n in v.items() )
loop.run_until_complete(asyncio.gather(*fun_list))

print(result2)

猜你喜欢

转载自blog.51cto.com/hequan/2128454