Python 2.7,处理HTMLParser时出现ValueError

0 投票
3 回答
987 浏览
提问于 2025-04-16 03:34

这是我第一次使用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))

你用了方括号,而不是大括号。

撰写回答