2011-02-03 106 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