Ci-dessous est une version simplifiée de mon code. Lors de l'exécution, le texte « FINI » imprime longtemps avant « RUNNING »:Scrapy - attendez que Splash finisse?
import scrapy
from scrapy_splash import SplashRequest
class ExtractSpider(scrapy.Spider):
name = 'extract'
start_urls = ['SomeURL']
def parse(self, response):
url_list = response.css('a.title::attr(href)').extract()
for url in url_list:
splash_args = {
'html': 1,
'png': 1,
'render_all': True,
'wait': 0.5
}
yield SplashRequest(url, self.parse_result, endpoint='render.json', args=splash_args)
print('FINISHED')
def parse_result(self, response):
print('RUNNING')
Je suppose que cela a quelque chose à voir avec les discussions en cours d'exécution en arrière-plan - mais se demandait s'il y avait un moyen de vérifier si le fonction est terminée avant de passer au code suivant? Par exemple, une sorte d'instruction if avant Print ('FINISH')?