Diferencia de la araña de Scrapy entre las páginas rastreadas y los elementos raspados
Estoy escribiendo un Scrapy CrawlSpider que lee una lista de anuncios publicitarios en la primera página, toma información como los pulgares de los listados y las direcciones URL de anuncios, luego envía una solicitud a cada una de estas direcciones URL de anuncios para que tomen sus detalles.
Estaba funcionando y paginando aparentemente bien en el entorno de prueba, pero hoy, tratando de hacer una ejecución completa, me di cuenta de que en el registro:
Arrastrado3852 páginas (a 228 páginas / min), raspadas256 artículos (a 15 artículos / min)
No entiendo la razón de esta gran diferencia entre las páginas rastreadas y los elementos raspados. ¿Alguien me puede ayudar a darme cuenta de dónde se pierden esos artículos?
Mi código de araña:
class MySpider(CrawlSpider):
name = "myspider"
allowed_domains = ["myspider.com", "myspider.co"]
start_urls = [
"http://www.myspider.com/offers/myCity/typeOfAd/?search=fast",
]
#Pagination
rules = (
Rule (
SgmlLinkExtractor()
, callback='parse_start_url', follow= True),
)
#1st page
def parse_start_url(self, response):
hxs = HtmlXPathSelector(response)
next_page = hxs.select("//a[@class='pagNext']/@href").extract()
offers = hxs.select("//div[@class='hlist']")
for offer in offers:
myItem = myItem()
myItem['url'] = offer.select('.//span[@class="location"]/a/@href').extract()[0]
myItem['thumb'] = oferta.select('.//div[@class="itemFoto"]/div/a/img/@src').extract()[0]
request = Request(myItem['url'], callback = self.second_page)
request.meta['myItem'] = myItem
yield request
if next_page:
yield Request(next_page[0], callback=self.parse_start_url)
def second_page(self,response):
myItem = response.meta['myItem']
loader = myItemLoader(item=myItem, response=response)
loader.add_xpath('address', '//span[@itemprop="streetAddress"]/text()')
return loader.load_item()