BaşlayınÜcretsiz Başlayın

Çalıştırma Zamanı

Son derste, DataCamp kurs dizinindeki her bir kurstan kurs bilgilerine erişmek için baştan sona bir web-crawler oluşturduk. Ancak ayrıştırma yöntemlerini bitirdikten sonra kodla oynamadığımız için ders bir doruk noktasına ulaşmadan bitmiş gibi göründü.

Bu egzersizin amacı bunu telafi etmek!

Bu ve sonraki egzersizde incelemen için verdiğimiz kod uzun, çünkü derste birlikte yazdığımız örümceğin tamamı! Ama gözün korkmasın! Bu iki egzersizin amacı sana tamamlaması çok kolay bir görev vermek; böylece bu örümceğin koduna bakıp onu çalıştırmanı umuyoruz. Bu sayede, uzun olsa bile mantığını kavramış olacaksın!

Bu egzersiz

Python ile Web Scraping

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • parse_pages yöntemlerinin sonunda yer alan tek boşluğu doldur ve bölüm başlıklarını, anahtarı ilgili kurs başlığı olan sözlüğe ata.

NOT: Eğer Kodu Çalıştır'a basarsan, yeniden başarılı şekilde kullanabilmek için mutlaka Örnek koda sıfırla yapmalısın!!

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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)
Kodu Düzenle ve Çalıştır