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
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 )