Python请求接口解析xml

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请求网址并解析HTML可分为请求网址获取HTML内容和解析HTML内容两个步骤。 ### 请求网址获取HTML内容 可以使用`requests`库来请求网址获取HTML内容。以下是一个简单示例: ```python import requests url = 'https://example.com' # 替换为实际的网址 response = requests.get(url) if response.status_code == 200: html_content = response.text print(html_content) else: print(f"请求失败,状态码: {response.status_code}") ``` ### 解析HTML内容 有多种方法可以解析HTML内容,以下介绍几种常见的方法: #### 1. 使用`BeautifulSoup`库 `BeautifulSoup`是一个强大的HTML解析库,它可以方便地从HTML中提取所需的数据。 ```python from bs4 import BeautifulSoup # 假设html_content是前面请求得到的HTML内容 soup = BeautifulSoup(html_content, 'html.parser') # 例如,提取所有的链接 links = soup.find_all('a') for link in links: print(link.get('href')) ``` #### 2. 使用`lxml`库结合XPath `lxml`是一个高性能的XML和HTML解析库,XPath是一种在XML和HTML文档中定位元素的语言。 ```python from lxml import etree # 假设html_content是前面请求得到的HTML内容 html = etree.HTML(html_content) # 例如,提取所有的链接 links = html.xpath('//a/@href') for link in links: print(link) ``` #### 3. 使用正则表达式 正则表达式可以用于匹配和提取HTML中的特定模式。 ```python import re # 假设html_content是前面请求得到的HTML内容 # 例如,提取所有的链接 links = re.findall(r'<a.*?href="(.*?)".*?>', html_content) for link in links: print(link) ``` 引用中提到爬虫原理是把目标网址的内容下载下来存储到内存(对应请求网址获取HTML内容),然后对HTML内容进行解析,提取想要的数据,上述介绍的方法各有特点,可根据不同的场合选择使用 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风之梦丽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值