Python 3 - HTML 解析器 - 空属性

Python 3 - HTML Parser - Empty Attributes

def handle_starttag(self, tag, attrs):
    print(attrs)

[]

为什么我的 attrs 是一个空列表?标签内的数据在哪里? 我不知道为什么我的 attrs 是空的,我需要它的数据,来自 handle_data 或来自 attrs

import urllib.request
from html.parser import HTMLParser
import sys

class myHTMLParser(HTMLParser):
    
    def __init__(self):
        HTMLParser.__init__(self)
        self.country = {}
        
    def handle_starttag(self, tag, attrs):
        if tag == 'currency_name':
            self.country[self.handle_data] = tag
        print(self.country)
        
    def handle_endtag(self, tag):
        pass
    
    def handle_data(self, data):
        return(data.strip())
    
def main():
    if len(sys.argv) > 1:
        link = sys.argv[1]
    else:   
        link = 'http://www.bankofcanada.ca/stats/assets/xml/noon-five-day.xml' 
        
        
    myparser = myHTMLParser()    
    file = open(link, 'r')
    html = file.read()
    myparser.feed(html)
    file.close()
main()

我觉得你很困惑。至少你程序中的 URL 没有属性,但它确实有数据。属性是标签本身内部的信息。这是传递信息的一种方式。

对于您的页面,信息位于开始标记和结束标记之间。

<a href="mysite.org"></a>是传递信息的一种方式。

 <p>this is text</p>

是另一个。

由于没有属性,该列表为空。数据在handle_data.

返回的结果中