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