Aan de slagGa gratis aan de slag

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

Cursus bekijken

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 )
Code bewerken en uitvoeren