2010-09-01 5 views
0

Première utilisation du module HTMLParser. Essayer d'utiliser le formatage de chaîne standard sur la sortie, mais cela me donne une erreur. Le code suivant:Python 2.7, ValueError lors de l'utilisation de 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" 

produit l'erreur suivante:

File "C:\Users\workspace\test\src\test.py", line 15, in handle_starttag 
print("Found Link --> {]".format(value)) 
ValueError: unmatched '{' in format 

Répondre

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

devrait plutôt être:

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

Vous avez utilisé un support carré au lieu d'une attelle.

+0

Wow, je me sens idiot. Bon oeil qui attrape ça. Lol, peut-être que je devrais augmenter la taille de la police de mon éditeur. :) Fonctionne bien maintenant. – Stev0

0

Cette chaîne de format est cassé: print("Found Link --> {]".format(value)). Vous devez changer cela en print("Found Link --> {key}".format(key = value)).

0

Il y a plusieurs problèmes

  • la déclaration d'impression handle_starttag devrait être en retrait
  • dans la dernière ligne vous manque la parenthèse fermante
  • dans l'instruction d'impression handle_starttag vous devez utiliser {0} à la place de {]
Questions connexes