Python:Scrapy只导出原始数据而不是text()?

Python:Scrapy只导出原始数据而不是text()?,python,class,parsing,export,scrapy,Python,Class,Parsing,Export,Scrapy,我正在从此类导出: class MySpider(BaseSpider): name = "dozen" allowed_domains = ["yahoo.com"] start_urls = ["http://finance.yahoo.com/q/is?s=SCMP+Income+Statement&annual"] def parse(self, response): hxs = HtmlXPathSelector(respon

我正在从此类导出:

class MySpider(BaseSpider):
    name =  "dozen"
    allowed_domains = ["yahoo.com"]
    start_urls = ["http://finance.yahoo.com/q/is?s=SCMP+Income+Statement&annual"]

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        revenue = hxs.select('//td[@align="right"]')
        items = []
        for rev in revenue:
            item = DozenItem()
            item["Revenue"] = rev.xpath("./strong/text()")
            items.append(item)
        return items[:7]
得到这个:

[<HtmlXPathSelector xpath='./strong/text()' data=u'\n                            115,450\xa0\xa0\n '>]

我认为你做得很好。你能显示html吗

通常,我使用以下代码:

rev.xpath("./strong/text()").extract()[0].encode('utf8').strip()

您试图在第一个选择中使用太宽的Xpath表达式。 试着这样做:

def parse(self, response):
    revenue = response.xpath('//td[@align="right"]/strong/text()')
    items = []
    for rev in revenue:
        item = DozenItem()
        item["Revenue"] = rev.re('\d*,\d*')
        items.append(item)
    return items[:3]

你所建议的是我过去是怎么做的,但现在它是正确的。但是您可以尝试使用.re('\d+'),例如。。。我不知道这个问题的原因,我不知道这个问题有多广泛或具体。这是非常有用的,但是导出会为每个数字显示
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
。你知道我如何减少几个额外的字符吗?是的,检查更新的表达式,我在mantime中进行了编辑。
def parse(self, response):
    revenue = response.xpath('//td[@align="right"]/strong/text()')
    items = []
    for rev in revenue:
        item = DozenItem()
        item["Revenue"] = rev.re('\d*,\d*')
        items.append(item)
    return items[:3]