Temps d'utilisation du crawler
Il s'agit de votre première occasion de jouer avec un robot d'indexation qui passe d'un site à l'autre (en collectant d'abord les liens d'un site, puis en suivant ces liens pour analyser les nouveaux sites). Cette araignée commence par le répertoire abrégé des cours de DataCamp, puis extrait les liens des cours selon la méthode parse
; à partir de là, elle suit ces liens pour extraire les descriptions des cours de chaque page de cours selon la méthode parse_descr
, et place ces descriptions dans la liste course_descrs
. Votre tâche consiste à compléter le code pour que l'araignée fonctionne comme vous le souhaitez !
Nous avons créé une fonction inspect_spider
qui imprimera l'une des descriptions de cours que vous récupérez (si vous le faites correctement) !
Cet exercice fait partie du cours
Web Scraping en Python
Instructions
- Remplissez les deux espaces vides ci-dessous (un dans chacune des méthodes d'analyse) avec les entrées appropriées afin que l'araignée puisse passer correctement de la première méthode d'analyse à la seconde.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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 )