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