在提出请求后,Scrapy没有返回

时间:2014-05-26 19:02:30

标签: python web-scraping scrapy

与此处的人类似:Scrapy Not Returning Additonal Info from Scraped Link in Item via Request Callback,我无法访问我在回调函数中构建的项目列表。我已经尝试在解析函数中构建列表(但由于回调没有返回而无法工作)和回调,但两者都没有对我有效。

我正在尝试从这些请求中返回我构建的所有项目。我在哪里打电话"退货"这样项目已经完全处理?我正在尝试复制教程(http://doc.scrapy.org/en/latest/intro/tutorial.html#using-our-item) 谢谢!

相关代码如下:

class ASpider(Spider):
    items = []
...
  def parse(self, response):
      input_file = csv.DictReader(open("AFile.txt"))
      x = 0
      for row in input_file:
          yield  Request("ARequest", 
          cookies = {"arg1":"1", "arg2":row["arg2"], "style":"default", "arg3":row["arg3"]}, callback = self.aftersubmit, dont_filter = True)

  def aftersubmit(self, response):
    hxs = Selector(response)
    # Create new object..
    item = AnItem()
    item['Name'] = "jsc"
    return item

1 个答案:

答案 0 :(得分:1)

您需要return(或yield)来自aftersubmit回调方法的项目。引自docs

  

在回调函数中,您解析响应(网页)并返回   Item对象,Request对象或两者的可迭代。

def aftersubmit(self, response):
    hxs = Selector(response)

    item = AnItem()
    item['Name'] = "jsc"
    return item

请注意,这个特定的Item实例没有意义,因为您还没有真正将响应中的任何内容放入其中。