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.
返回的结果中
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.
返回的结果中