spider span requests extractfirst docs create compose python scrapy web-crawler sitemap

python - span - Scrapy rastrea todos los enlaces del mapa del sitio



select scrapy (2)

Básicamente, puede crear nuevos objetos de solicitud para rastrear las URL creadas por SitemapSpider y analizar las respuestas con una nueva devolución de llamada:

class MySpider(SitemapSpider): name = "xyz" allowed_domains = ["xyz.nl"] sitemap_urls = ["http://www.xyz.nl/sitemap.xml"] def parse(self, response): print response.url return Request(response.url, callback=self.parse_sitemap_url) def parse_sitemap_url(self, response): # do stuff with your sitemap links

Quiero rastrear todos los enlaces presentes en el sitemap.xml de un sitio fijo. Me encontré con el SitemapSpider de Scrapy . Hasta ahora he extraído todas las URL en el mapa del sitio. Ahora quiero rastrear a través de cada enlace del mapa del sitio. Cualquier ayuda sería muy útil. El código hasta el momento es:

class MySpider(SitemapSpider): name = "xyz" allowed_domains = ["xyz.nl"] sitemap_urls = ["http://www.xyz.nl/sitemap.xml"] def parse(self, response): print response.url


Necesita agregar sitemap_rules para procesar los datos en las direcciones URL rastreadas, y puede crear tantas como desee. Por ejemplo, decir que tienes una página llamada http://www.xyz.nl//x/ y quieres crear una regla:

class MySpider(SitemapSpider): name = ''xyz'' sitemap_urls = ''http://www.xyz.nl/sitemap.xml'' # list with tuples - this example contains one page sitemap_rules = [(''/x/'', parse_x)] def parse_x(self, response): sel = Selector(response) paragraph = sel.xpath(''//p'').extract() return paragraph