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