Python 2.7,处理HTMLParser时出现ValueError
这是我第一次使用HTMLParser模块。我想对输出结果进行标准的字符串格式化,但出现了错误。以下是我的代码:
import urllib2
from HTMLParser import HTMLParser
class LinksParser(HTMLParser):
def __init__(self, url):
HTMLParser.__init__(self)
req = urllib2.urlopen(url)
self.feed(req.read())
def handle_starttag(self, tag, attrs):
if tag != 'a': return
for name, value in attrs:
print("Found Link --> {]".format(value))
if __name__ == "__main__":
LinksParser("http://www.facebook.com"
运行后出现了以下错误:
File "C:\Users\workspace\test\src\test.py", line 15, in handle_starttag
print("Found Link --> {]".format(value))
ValueError: unmatched '{' in format
3 个回答
0
这里有几个问题:
handle_starttag
里的打印语句需要缩进一下。- 最后一行缺少一个右括号。
- 在
handle_starttag
里的打印语句中,你应该用{0}
,而不是{]
。
0
这个格式字符串看起来有问题:print("Found Link --> {]".format(value))
。你需要把它改成 print("Found Link --> {key}".format(key = value))
。
2
print("Found Link --> {]".format(value))
应该改成:
print("Found Link --> {}".format(value))
你用了方括号,而不是大括号。