ÎncepețiÎncepe gratuit

Timp de crawling

Aceasta este prima ta ocazie să lucrezi cu un spider care va naviga între site-uri (colectând mai întâi link-uri de pe un site, apoi urmărindu-le pentru a parsa site-uri noi). Spider-ul pornește de la directorul prescurtat al cursurilor DataCamp, extrage link-urile cursurilor în metoda parse, iar de acolo urmărește acele link-uri pentru a extrage descrierile cursurilor din fiecare pagină de curs în metoda parse_descr, adăugând descrierile în lista course_descrs. Sarcina ta este să completezi codul astfel încât spider-ul să funcționeze corect!

Am creat o funcție inspect_spider care va afișa una dintre descrierile de curs pe care le extragi (dacă totul este implementat corect)!

Acest exercițiu face parte din cursul

Web Scraping în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează cele două spații libere de mai jos (câte unul în fiecare metodă de parsare) cu intrările potrivite, astfel încât spider-ul să poată trece corect de la prima metodă de parsare la a doua.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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 )
Editează și rulează codul