НачатьНачать бесплатно

Время паука-краулера

Это ваш первый шанс поработать с пауком, который будет обходить несколько сайтов: сначала собирать ссылки с одной страницы, а затем переходить по ним и парсить новые страницы. Паук начинает работу с сокращённого каталога курсов DataCamp, затем извлекает ссылки на курсы в методе parse. Далее он переходит по этим ссылкам, чтобы извлечь описания курсов со страниц каждого курса в методе parse_descr, и записывает эти описания в список course_descrs. Ваша задача — дополнить код так, чтобы паук работал правильно!

Мы создали функцию inspect_spider, которая выведет одно из описаний курсов, которые вы спарсите (если всё сделано верно)!

Это упражнение является частью курса

Веб-скрапинг на Python

Посмотреть курс

Инструкции к упражнению

  • Заполните два пропуска ниже (по одному в каждом из методов парсинга), добавив нужные значения, чтобы паук мог корректно перейти от первого метода парсинга ко второму.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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 )
Редактировать и запускать код