2011-02-03 8 views
5

Sto provando a aprire e analizzare alcuni html. Finora, era ok, sono in grado di aprire il sorgente e stamparlo per esempio. Ma quando si tratta di analisi mi sono bloccato con "istanza ElementTree non ha alcun attributo 'fromstring'"L'istanza ElementTree non ha attributo 'fromstring'. Allora, cosa ho sbagliato?

questo è il mio codice Django view.py:

from django.template import loader, Context 
from django.http import HttpResponse 
import urllib 
from xml.etree.ElementTree import ElementTree 

def transform (request): 
    opener = urllib.FancyURLopener({}) 
    f = opener.open("http://www.google.com/") 
    r = f.read() 
    f.close() 
    tree = ElementTree() 
    tree.fromstring(r) 
    p = tree.find("body/h1") 
    t = loader.get_template("transform.html") 
    c = Context({'neco': p }) 
    return HttpResponse(t.render(c)) 

Django Versione: 1.2.4 Python Version : 2.6.5

Qualcuno ha qualche idea, per favore?

risposta

13

La vostra dichiarazione di importazione è sbagliato ... fromstring è una funzione gratuita nel modulo xml.etree.ElementTree, non è un metodo della classe xml.etree.ElementTree.ElementTree:

from xml.etree import ElementTree as etree 
... 
tree = etree.fromstring(r) 
+1

ha senso, ma ora lo script prende il server verso il basso. non so perché. – Nanook

Problemi correlati