【问题标题】:Scrapy Spider - For loop within response callback not iteratingScrapy Spider - 响应回调中的 For 循环不迭代
【发布时间】:2014-04-19 04:48:12
【问题描述】:

我正在尝试在此 SO 线程中使用“warwaruk”描述的链接解析结构: Following links, Scrapy web crawler framework

当只从每个页面中抓取一个项目时,这非常有用。但是,当我尝试创建一个 for 循环来抓取每个页面中的所有项目时,似乎 parse_item 函数在到达第一个 yield 语句时终止。我有一个自定义管道设置来处理每个项目,但目前它每页只接收一个项目。

如果我需要包含更多代码或说明,请告诉我。谢谢!

def parse_item(self,response):  
    hxs = HtmlXPathSelector(response)
    prices = hxs.select("//div[contains(@class, 'item')]/script/text()").extract()
    for prices in prices:
        item = WalmartSampleItem()
        ...
        yield items

【问题讨论】:

    标签: python scrapy


    【解决方案1】:

    你应该在 for 循环中 yield 一个 item,而不是 items

    for prices in prices:
        item = WalmartSampleItem()
        ...
        yield item
    

    【讨论】:

    • 好像还是一样的问题,只是我粘贴代码的时候不小心加了那个s。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2012-01-05
    相关资源
    最近更新 更多