Crawler-Zeit
Dies ist deine erste Chance, mit einem Spider zu spielen, der zwischen den Websites crawlt (indem er zuerst Links von einer Website sammelt und diesen Links folgt, um neue Websites zu analysieren). Dieser Spider beginnt mit dem verkürzten DataCamp-Kursverzeichnis und extrahiert dann die Links der Kurse mit der Methode parse
. Von dort aus folgt er diesen Links, um die Kursbeschreibungen von jeder Kursseite mit der Methode parse_descr
zu extrahieren und diese Beschreibungen in die Liste course_descrs
zu stellen. Deine Aufgabe ist es, den Code so zu vervollständigen, dass der Spider wie gewünscht läuft!
Wir haben eine Funktion inspect_spider
erstellt, mit der du eine der Kursbeschreibungen ausdrucken kannst (wenn du es richtig machst)!
Diese Übung ist Teil des Kurses
Web Scraping in Python
Anleitung zur Übung
- Fülle die beiden Lücken unten (eine in jeder der Parsing-Methoden) mit den entsprechenden Einträgen aus, damit der Spider von der ersten Parsing-Methode zur zweiten korrekt wechseln kann.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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 )