Je veux un middleware qui va prendre une seule demande et le transformer en un générateur de deux demandes différentes. Pour autant que je sache, la méthode middleware downloader process_request()
ne peut renvoyer qu'une seule requête, pas un générateur d'entre eux. Existe-t-il un bon moyen de diviser une requête arbitraire en plusieurs requêtes?Middleware Scrapy pour remplacer une requête unique avec plusieurs demandes
Il semble que le middleware spider process_start_requests
se produit réellement après les start_requests
Les demandes sont envoyées via le téléchargeur. Par exemple, si je mets start_urls = ['https://localhost/']
et
def process_start_requests(self, start_requests, spider):
yield Request('https://stackoverflow.com')
il échouera avec ConnectionRefusedError
, après avoir essayé et échoué la demande localhost
.
Je ne peux pas reproduire votre erreur. Définir 'process_start_requests' dans un middleware spider, cédant' scrapy.Request ('http://www.stackoverflow.com') 'fonctionne pour moi –
@paultrmbrth Vous avez raison; ce n'était pas la source de mon problème. [Cette question] (https://stackoverflow.com/questions/45026532/async-query-database-for-keys-to-use-in-multiple-requests) explique mieux ma situation. – Hatshepsut