Scrapy仅返回第一个结果

时间:2015-04-06 23:03:46

标签: python xpath web-scraping scrapy

我正在尝试抓取预先格式化的html here。 但是我的代码只返回1个价格而不是全部10个价格。

此处看到的代码:

class MySpider(BaseSpider):
    name = "working1"
    allowed_domains = ["steamcommunity.com"]
    start_urls = ["http://steamcommunity.com/market/search/render/?query=&appid=440"]

    def parse(self, response):
        sel = Selector(response)
        price = sel.xpath("//text()[contains(.,'$')]").extract()[0].replace('\\r\\n\\t\\t\\t\\r\\n\\t\\t\\t','')
        print price

我是scrapy / xpath的新手,所以我不确定为什么不打印每个价格的实例。

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您将获得xpath匹配的第一个结果。相反,迭代所有这些:

for price in sel.xpath("//text()[contains(., '$')]").extract():
    print price.strip(r"\r\n\t")

打印(多次出现$0.03):

$0.03
$0.03
$0.03
$0.03
$0.03
$0.03
$0.03
$0.03
$0.03
$0.03