시작하기무료로 시작하기

크롤러 시간

이제 사이트 간을 오가며 크롤링하는 스파이더를 직접 다뤄 볼 차례예요(먼저 한 사이트에서 링크를 모으고, 그 링크를 따라가 새 사이트를 파싱합니다). 이 스파이더는 축약된 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 )
코드 편집 및 실행