Ich kratze zwei Seiten für eine einzelne ID iterativ. Der erste Scraper funktioniert für alle IDs, aber der zweite funktioniert nur für eine ID.Scrapy kratzt eine Seite 'n' mal aber andere einzelne Zeit wenn in einer Schleife
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
Ich möchte zwei verschiedene Seiten für eine einzelne ID ausrangieren.
Scrapy hat einen doppelten URL-Filter, es ist möglich, dass Ihre Anfrage gefiltert wird. Versuchen Sie, 'dont_filter = True 'nach' callback = 'hinzuzufügen. – Steve
Vielen Dank. Das Hinzufügen von dont_filter hat mein Problem gelöst. –