Erste SchritteKostenlos loslegen

Zeit zu laufen

In der letzten Lektion haben wir einen kompletten Webcrawler erstellt, um auf die Kursinformationen der einzelnen Kurse im DataCamp-Kursverzeichnis zuzugreifen. Allerdings schien die Lektion ohne Höhepunkt zu enden, weil wir nach der Beendigung der Parsing-Methoden nicht mehr mit dem Code gespielt haben.

Das Ziel dieser Aufgabe ist es, das zu ändern!

Der Code, den wir dir in dieser und der nächsten Aufgabe zeigen, ist sehr lang, denn wir haben die ganze Lektion gebraucht, um den Spider zu erstellen! Aber lass dich nicht einschüchtern! Der Sinn dieser beiden Aufgaben ist es, dir eine sehr einfache Aufgabe zu stellen, in der Hoffnung, dass du dir den Code für diesen Spider ansiehst und ausführst. Auf diese Weise hast du ihn im Griff, auch wenn er lang ist!

Diese Übung ist Teil des Kurses

Web Scraping in Python

Kurs anzeigen

Anleitung zur Übung

  • Fülle die eine Lücke am Ende der parse_pages-Methoden aus, um die Titel der Kapitel dem Wörterbuch zuzuordnen, dessen Schlüssel der entsprechende Kurstitel ist.

HINWEIS: Wenn du auf „Code ausführen“ klickst, musst du auf den Beispielcode zurücksetzen, um „Code ausführen“ wieder erfolgreich zu verwenden!

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# 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)
Bearbeiten und Ausführen von Code