Bắt đầu ngayBắt đầu miễn phí

Đến giờ thu thập dữ liệu

Đây là lần đầu bạn được thực hành với một spider có thể bò qua nhiều trang (bằng cách thu thập liên kết từ một trang, rồi theo các liên kết đó để phân tích các trang mới). Spider này bắt đầu từ danh mục khóa học rút gọn của DataCamp, sau đó trích các liên kết của các khóa học trong phương thức parse; từ đó, nó sẽ theo các liên kết này để trích mô tả khóa học từ từng trang khóa học trong phương thức parse_descr, và đưa các mô tả này vào danh sách course_descrs. Nhiệm vụ của bạn là hoàn thiện mã để spider chạy đúng như mong muốn!

Chúng tôi đã tạo hàm inspect_spider để in ra một trong các mô tả khóa học mà bạn thu thập được (nếu làm đúng)!

Bài tập này là một phần của khóa học

Web Scraping với Python

Xem khóa học

Hướng dẫn bài tập

  • Điền hai chỗ trống bên dưới (mỗi chỗ trong một phương thức phân tích) với tham số phù hợp để spider có thể chuyển từ phương thức phân tích đầu tiên sang phương thức thứ hai một cách chính xác.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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 )
Chỉnh sửa và Chạy Mã