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