Python 3 - HTML解析器 - 空属性

时间:2015-04-03 04:19:41

标签: python html-parsing

def handle_starttag(self, tag, attrs):
    print(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()




1 个答案:

答案 0 :(得分:1)

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

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

类似<a href="mysite.org"></a>是转移信息的一种方式。

 <p>this is text</p>

是另一个。

由于没有属性,该列表为空。数据位于handle_data返回的结果中。