Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Scrapy在生成请求后不返回_Python_Web Scraping_Scrapy - Fatal编程技术网

Python Scrapy在生成请求后不返回

Python Scrapy在生成请求后不返回,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,与这里的人类似,我很难访问回调函数中生成的项列表。我曾尝试在parse函数中构建列表(但由于回调尚未返回,因此不起作用),也尝试在回调中构建列表,但这两种方法对我都不起作用 我正在尝试返回从这些请求生成的所有项。我在哪里称之为“退货项目”,以便该项目已被完全处理?我正在尝试复制教程() 谢谢 相关代码如下: class ASpider(Spider): items = [] ... def parse(self, response): input_file = csv.D

与这里的人类似,我很难访问回调函数中生成的项列表。我曾尝试在parse函数中构建列表(但由于回调尚未返回,因此不起作用),也尝试在回调中构建列表,但这两种方法对我都不起作用

我正在尝试返回从这些请求生成的所有项。我在哪里称之为“退货项目”,以便该项目已被完全处理?我正在尝试复制教程() 谢谢

相关代码如下:

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

您需要从
aftersubmit
回调方法
返回
(或
产生
)一个项目。引自:

在回调函数中,解析响应(网页)并返回 项对象、请求对象或两者的iterable


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

我的代码中确实包含了它,但仍然无法将返回的项添加到列表中,如图所示above@jsc123好啊但是您需要项目列表的确切用途是什么?这样我就可以将所有项目添加到CSV中。与教程()类似,我希望能够使用以下命令返回CSV:scrapy crawl ASpider-o items.CSV-tcsv@jsc123没错,这是刮皮的工作。您需要这样一个:。@jsc123爬行器的工作是提取数据,将其放入项实例中并返回。导出由项目导出器稍后完成。将其视为“责任链”。
def aftersubmit(self, response):
    hxs = Selector(response)

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