Hora del crawling
Esta será tu primera oportunidad de jugar con una araña que rastreará entre sitios (recogiendo primero enlaces de un sitio, y siguiendo esos enlaces para analizar nuevos sitios). Esta araña comienza en el directorio abreviado de cursos de DataCamp, luego extrae los enlaces de los cursos en el método parse
; a partir de ahí, seguirá esos enlaces para extraer las descripciones de los cursos de cada página de curso en el método parse_descr
, y pondrá esas descripciones en la lista course_descrs
. Tu trabajo consiste en completar el código para que la araña funcione como deseas.
Hemos creado una función inspect_spider
que imprimirá una de las descripciones de los cursos con los que hagas scraping (si se hace correctamente).
Este ejercicio forma parte del curso
Web scraping en Python
Instrucciones de ejercicio
- Rellena los dos espacios en blanco siguientes (uno en cada uno de los métodos de análisis sintáctico) con las entradas adecuadas para que la araña pueda pasar del primer método de análisis sintáctico al segundo correctamente.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Import the scrapy library
import scrapy
# Create the Spider class
class DCdescr( scrapy.Spider ):
name = 'dcdescr'
# start_requests method
def start_requests( self ):
yield scrapy.Request( url = url_short, callback = self.parse )
# First parse method
def parse( self, response ):
links = response.css( 'div.course-block > a::attr(href)' ).extract()
# Follow each of the extracted links
for link in links:
yield ____
# Second parsing method
def parse_descr( ____ ):
# Extract course description
course_descr = response.css( 'p.course__description::text' ).extract_first()
# For now, just yield the course description
yield course_descr
# Inspect the spider
inspect_spider( DCdescr )