MulaiMulai sekarang secara gratis

Saatnya Menjalankan

Pada pelajaran sebelumnya, kita telah membuat seluruh perayap web untuk mengakses informasi kursus dari setiap kursus di direktori kursus DataCamp. Namun, pelajaran tersebut terasa menggantung karena kita tidak mencoba menjalankan kodenya setelah menyelesaikan metode parsing.

Tujuan latihan ini adalah memperbaikinya!

Kode yang Anda lihat di latihan ini dan berikutnya memang panjang, karena ini adalah keseluruhan spider yang kita bangun sepanjang pelajaran tersebut! Namun, jangan berkecil hati! Tujuan dari dua latihan ini adalah memberi Anda tugas yang sangat mudah, dengan harapan Anda akan melihat dan menjalankan kode untuk spider ini. Dengan begitu, meskipun panjang, Anda tetap dapat memahaminya!

Latihan ini adalah bagian dari kursus

Web Scraping dengan Python

Lihat Kursus

Petunjuk latihan

  • Isi satu bagian kosong di akhir metode parse_pages untuk menetapkan judul bab ke kamus dengan kunci berupa judul kursus yang sesuai.

CATATAN: Jika Anda menekan Jalankan Kode, Anda harus Kembalikan ke kode contoh agar dapat menggunakan Jalankan Kode lagi dengan sukses!!

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Import scrapy
import scrapy

# Import the CrawlerProcess: for running the spider
from scrapy.crawler import CrawlerProcess

# Create the Spider class
class DC_Chapter_Spider(scrapy.Spider):
  name = "dc_chapter_spider"
  # start_requests method
  def start_requests(self):
    yield scrapy.Request(url = url_short,
                         callback = self.parse_front)
  # First parsing method
  def parse_front(self, response):
    course_blocks = response.css('div.course-block')
    course_links = course_blocks.xpath('./a/@href')
    links_to_follow = course_links.extract()
    for url in links_to_follow:
      yield response.follow(url = url,
                            callback = self.parse_pages)
  # Second parsing method
  def parse_pages(self, response):
    crs_title = response.xpath('//h1[contains(@class,"title")]/text()')
    crs_title_ext = crs_title.extract_first().strip()
    ch_titles = response.css('h4.chapter__title::text')
    ch_titles_ext = [t.strip() for t in ch_titles.extract()]
    dc_dict[ crs_title_ext ] = ____

# Initialize the dictionary **outside** of the Spider class
dc_dict = dict()

# Run the Spider
process = CrawlerProcess()
process.crawl(DC_Chapter_Spider)
process.start()

# Print a preview of courses
previewCourses(dc_dict)
Edit dan Jalankan Kode