Scrapy não rastreando páginas subseqüentes em ordem
Estou escrevendo um rastreador para obter os nomes dos itens de um site. O site tem 25 itens por página e várias páginas (200 para alguns tipos de itens).
Aqui está o código:
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from lonelyplanet.items import LonelyplanetItem
class LonelyplanetSpider(CrawlSpider):
name = "lonelyplanetItemName_spider"
allowed_domains = ["lonelyplanet.com"]
def start_requests(self):
for i in xrange(8):
yield self.make_requests_from_url("http://www.lonelyplanet.com/europe/sights?page=%d" % i)
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//h2')
items = []
for site in sites:
item = LonelyplanetItem()
item['name'] = site.select('a[@class="targetUrl"]/text()').extract()
items.append(item)
return items
Quando executo o rastreador e armazeno os dados no formato csv, os dados não são armazenados em ordem, ou seja, os dados da página 2 são armazenados antes da página 1 ou da página 3 serem armazenados antes da página 2 e de forma semelhante. Também às vezes, antes de todos os dados de uma determinada página serem armazenados, os dados de outra página chegam e os outros dados da antiga página são armazenados novamente.