Zacznij terazZacznij za darmo

Czas na crawler

To twoja pierwsza okazja, żeby pobawić się pająkiem, który będzie przechodzić między stronami – najpierw zbierając linki z jednej strony, a następnie podążając za nimi, aby sparsować kolejne. Pająk startuje ze skróconego katalogu kursów DataCamp, a następnie w metodzie parse wyodrębnia linki do poszczególnych kursów. Stamtąd podąża za tymi linkami, żeby w metodzie parse_descr pobrać opisy kursów z każdej strony kursu i umieścić je na liście course_descrs. Twoim zadaniem jest uzupełnienie kodu tak, żeby pająk działał zgodnie z oczekiwaniami!

Przygotowaliśmy funkcję inspect_spider, która wyświetli jeden z pobranych opisów kursów (jeśli wszystko zostało zrobione poprawnie)!

To ćwiczenie jest częścią kursu

Web Scraping w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzupełnij dwa brakujące miejsca w kodzie poniżej (po jednym w każdej z metod parsujących) odpowiednimi wartościami, tak aby pająk mógł poprawnie przejść z pierwszej metody parsującej do drugiej.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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 )
Edytuj i uruchom kod