Python 2.7, ValueError при работе с HTMLParser - PullRequest
0 голосов
/ 01 сентября 2010

Первая работа с модулем 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 ]

2 голосов
/ 01 сентября 2010
print("Found Link --> {]".format(value)) 

Вместо этого должно быть:

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

Вы использовали квадратную скобку вместо фигурной скобки.

0 голосов
/ 01 сентября 2010

Есть несколько проблем

  • оператор печати в handle_starttag должен иметь отступ
  • в последней строке, в которой пропущена закрывающая скобка
  • воператор печати в handle_starttag вы должны использовать {0} вместо {]
0 голосов
/ 01 сентября 2010

Эта строка формата выглядит неработающей: print("Found Link --> {]".format(value)). Вам нужно изменить это на print("Found Link --> {key}".format(key = value)).

...