2010-09-01 33 views
0

第一次使用HTMLParser模塊。試圖在輸出上使用標準字符串格式,但它給我一個錯誤。下面的代碼:Python 2.7,處理HTMLParser時的ValueError

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 

回答

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

應改爲:

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

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

+0

哇,我覺得很傻。很好的吸引眼球。大聲笑,也許我應該增加我的編輯器的字體大小。 :)現在工作正常。 – Stev0 2010-09-01 14:44:18

0

此格式字符串如下破:print("Found Link --> {]".format(value))。您需要將其更改爲print("Found Link --> {key}".format(key = value))

0

有幾個問題

  • handle_starttag print語句應該在最後一行縮進
  • 你錯過了在打印語句中的右括號
  • handle_starttag你應該使用{0}代替的{]
相關問題