Je suis en train de gratter deux pages pour un seul identifiant itérativement. Le premier grattoir fonctionne pour tous les identifiants mais le second fonctionne pour un seul identifiant.Scrapy gratte une page 'n' fois, mais une seule fois en boucle
class MySpider(scrapy.Spider):
name = "scraper"
allowed_domains = ["example.com"]
start_urls = ['http://example.com/viewData']
def parse(self, response):
ids = ['1', '2', '3']
for id in ids:
# The following method scraps for all id's
yield scrapy.Form.Request.from_response(response,
...
callback=self.parse1)
# The following method scrapes only for 1st id
yield Request(url="http://example.com/viewSomeOtherData",
callback=self.intermediateMethod)
def parse1(self, response):
# Data scraped here using selectors
def intermediateMethod(self, response):
yield scrapy.FormRequest.from_response(response,
...
callback=self.parse2)
def parse2(self, response):
# Some other data scraped here
Je souhaite supprimer deux pages différentes pour un seul ID.
Scrapy a un filtre URL dupliqué, il est possible que ce soit le filtrage de votre demande. Essayez d'ajouter 'dont_filter = True' après le' callback = '. – Steve
Merci beaucoup. L'ajout de dont_filter a résolu mon problème. –