2012-07-24 62 views
0

我是一個Python新手,希望在Scraperwiki中構建一個屏幕刮板,但是我正在努力解決一個錯誤,我無法解決如何解決這個問題。 本質上,我想分析一個XML文件,但不能解決如何讓我的gp_indicators_scrape函數訪問getroot()方法。在Python刮板使用etree時出現問題

任何人都可以修復它,更重要的是,指向我的解釋,所以我可以避免將來的問題?

這裏的刮刀:https://scraperwiki.com/scrapers/choiceshu1

代碼的關鍵位:

import lxml.html 
import urlparse 
from urlparse import urlparse 
from lxml.etree import etree 

def gp_indicators_scrape(org_URL): 

    indicator_xml = etree.parse(org_URL) 
    root = lxml.etree.getroot(indicator_XML) 
    print root 

html = scraperwiki.scrape(combined_URL_for_first_scrape) 
print html 
root = lxml.html.fromstring(html) 
links = root.cssselect("dd a") 

而且當它運行

Line 5 - from lxml.etree import etree 
ImportError: cannot import name etree 
+0

你沒有一個叫lxml.py在PYTHONPATH文件?爲什麼第5行的錯誤和第4行的代碼示例中的導入? – Willian 2012-07-24 08:16:10

+0

從lxml進口etree – varela 2012-07-24 08:22:46

+0

做什麼,Varela,我已經做到了。現在我得到一個「AttributeError:'模塊'對象沒有任何屬性'getroot'」錯誤... – elksie5000 2012-07-24 08:25:04

回答

1

from lxml.etree import etree應該from lxml import etree

而且這裏的錯誤,剛剛注意到 - lxml.etree.getroot(...) - 如果您使用上面的導入,則可以刪除lxml.,並且通常您通過etree.parse(或類似)返回的對象上調用getroot()

注:我沒有看過在所提供的鏈接代碼...