Tijd om te crawlen
Dit is je eerste kans om te werken met een spider die tussen sites door crawlt (eerst links verzamelen van één site, en die links volgen om nieuwe sites te parsen). Deze spider start bij de verkorte DataCamp-cursusdirectory, extraheert vervolgens in de methode parse de links van de cursussen; vanaf daar volgt hij die links om in de methode parse_descr de cursusbeschrijvingen van elke cursuspagina te halen, en zet deze beschrijvingen in de lijst course_descrs. Jouw taak is de code af te maken zodat de spider werkt zoals bedoeld!
We hebben een functie inspect_spider gemaakt die één van de cursusbeschrijvingen die je scrapt zal afdrukken (als je het goed doet)!
Deze oefening maakt deel uit van de cursus
Webscraping in Python
Oefeninstructies
- Vul de twee lege plekken hieronder in (één in elke parse-methode) met de juiste onderdelen, zodat de spider correct van de eerste parse-methode naar de tweede kan gaan.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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 )