私はscraping thisを使用してこのsiteを使用しています。私は、対応するページ(ページネーション)を取得し、その後、アレイ内のすべてのサブカテゴリーを保存したいPythonで再帰非同期ジョブを終了した後に関数を呼び出す方法は?
私は
def start_requests(self):
yield Request(start_urls[i], callback=self.get_sous_cat)
get_sous_catはすべて取得する機能である持っている最初のステップは、そのサブカテゴリを再帰的に探索するために非同期的にジョブを開始する。すべてそれぞれの要求が送られてきた
def get_sous_cat(self,response):
#Put all the categgories in a array
catList = response.css('div.categoryRefinementsSection')
if (catList):
for category in catList.css('a::attr(href)').extract():
category = 'https://www.amazon.fr' + category
print category
self.arrayCategories.append(category)
yield Request(category, callback=self.get_sous_cat)
、私はこの終了関数を呼び出す必要があります。
def pagination(self,response):
for i in range(0, len(self.arrayCategories[i])):
#DO something with each sub-category
を私はこれは "再帰" ではありません。この
def start_requests(self):
yield Request(start_urls[i], callback=self.get_sous_cat)
for subCat in range(0,len(self.arrayCategories)):
yield Request(self.arrayCategories[subCat], callback=self.pagination)
「これ」を試しましたが、結果は何ですか?あなたの期待とどのように違うのですか? – Psytho
完全に、擦り傷が終わったときを意味しますか?それはあなたのコードのaxampleからのようです。 spider_closedシグナルに接続することもできます。http://doc.scrapy.org/ja/latest/topics/signals.html#spiderclosedを参照してください。ページネーションルーチンで何をしているのかについてもっと説明できますか?このリンクの – Steve
https://www.amazon.fr/s/ref=sr_nr_n_0?fst=as%3Aoff&rh=n%3A3635788031%2Cp_76%3A437878031%2Cp_6%3AA1X6FK5RDHNB96%2Cn%3A!3635789031%2Cn%3A6356706031&bbn = 3635789031&ie = UTF8&qid = 1462896936&rnid = 3635789031私たちは17ページのカテゴリを持っています。私たちはRepasのようなサブカテゴリを持っています。このページのURL + RepasのようなサブカテゴリーのURLを配列、ページ区切り機能でカテゴリの17ページを取得します – parik