Waktunya Crawler
Ini adalah kesempatan pertama Anda untuk mencoba spider yang akan merayapi antar situs (dengan terlebih dahulu mengumpulkan tautan dari satu situs, lalu mengikuti tautan tersebut untuk mengurai situs baru). Spider ini dimulai dari direktori kursus DataCamp yang sudah dipendekkan, kemudian mengekstrak tautan kursus di metode parse; dari sana, spider akan mengikuti tautan tersebut untuk mengekstrak deskripsi kursus dari setiap halaman kursus di metode parse_descr, dan menempatkan deskripsi tersebut ke dalam daftar course_descrs. Tugas Anda adalah melengkapi kode agar spider berjalan seperti yang diinginkan!
Kami telah membuat fungsi inspect_spider yang akan mencetak salah satu deskripsi kursus yang Anda scrap (jika dilakukan dengan benar)!
Latihan ini adalah bagian dari kursus
Web Scraping dengan Python
Petunjuk latihan
- Isi dua bagian kosong di bawah ini (masing-masing di salah satu metode parsing) dengan entri yang tepat agar spider dapat berpindah dari metode parsing pertama ke yang kedua dengan benar.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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 )