Python 2.7,处理HTMLParser时的ValueError

时间:2010-09-01 06:12:02

标签: python html-parsing

首次使用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 :(得分:2)

print("Found Link --> {]".format(value)) 

应改为:

print("Found Link --> {}".format(value))

您使用方括号而不是大括号。

答案 1 :(得分:0)

此格式字符串看起来已损坏:print("Found Link --> {]".format(value))。您需要将其更改为print("Found Link --> {key}".format(key = value))

答案 2 :(得分:0)

有几个问题

  • handle_starttag中的print语句应缩进
  • 在最后一行,你错过了右括号
  • handle_starttag的打印声明中,您应使用{0}代替{]