import itertools
import string
import requests
import xml.sax
import xml.sax.handler
import time
class XMLHandler(xml.sax.handler.ContentHandler):
def __init__(self):
self.buffer = ""
self.mapping = {}
def startElement(self, name, attributes):
self.buffer = ""
def characters(self, data):
self.buffer += data
def endElement(self, name):
self.mapping[name] = self.buffer
def getDict(self):
return self.mapping
def checkDomainExist(domain):
#判断域名是否已注册地址
url = "http://panda.www.net.cn/cgi-bin/check.cgi?area_domain="+domain
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19041",
'Content-Type': 'text/xml'
}
xh = XMLHandler()
result_xml = requests.get(url, headers=headers)
xml.sax.parseString(result_xml.text, xh)
dict = {}
d = xh.getDict()
dict['domain'] = d.get("key")
dict['result'] = d.get("original")
return dict
a = string.ascii_lowercase
#返回的是可迭代元素中的一个排列组合,并且是按顺序返回的,且不包含重复的结果。
domain_list2 = list(itertools.permutations(a, 2))
#返回的是可迭代对象所有的长度为 r 的子序列且可与自身重复的元素组合
domain_list1 = list(itertools.combinations_with_replacement(a,2))
#排除重复项
domain_list = list(set(domain_list2).union(domain_list1))
print(len(domain_list))
list.sort(domain_list)
for v in domain_list:
domain = "".join(v)
result = checkDomainExist(domain+".com")
time.sleep(5)
if '210' in result.get('result'):
print(result.get('domain') + '可以购买')
else:
print(result.get('domain') + '不可以购买')
Python请求接口解析xml
最新推荐文章于 2024-08-24 07:40:05 发布