在Python scraper中使用etree的问题

时间:2012-07-24 08:10:37

标签: python screen-scraping lxml

我是Python的新手,希望在Scraperwiki中构建一个屏幕抓取器,但我正在努力解决一个错误,我无法解决如何解决问题。 本质上,我想解析一个xml文件,但无法弄清楚如何让我的gp_indicators_scrape函数访问getroot()方法。

任何人都可以解决它,更重要的是,请指出我的解释,以便将来可以避免这个问题吗?

这是刮刀: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

1 个答案:

答案 0 :(得分:1)

from lxml.etree import etree应为from lxml import etree

另外,只需注意 - lxml.etree.getroot(...) - 如果您使用上面的导入,则可以删除lxml.,通常您会通过getroot()(通过etree.parse返回的对象调用{{1}}(或类似的。)

注意:我没有查看提供的链接中的代码...