2011-02-03 109 views
5

我想打開並解析一些html。到目前爲止,沒關係,我可以打開源代碼並打印它。但是,當涉及到解析我堅持用 「ElementTree的實例沒有屬性 'fromstring'」ElementTree實例沒有屬性'fromstring'。那麼,我做錯了什麼?

這是我的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的版本:1.2.4 Python版本:2.6.5

請問有人有什麼想法嗎?

回答

13

你的import語句是錯誤的... fromstringxml.etree.ElementTree模塊中的免費功能,不是類xml.etree.ElementTree.ElementTree的方法:

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

這是有道理的,但現在的腳本採取關閉服務器。不知道爲什麼。 – Nanook 2011-02-03 16:56:17