시작하기무료로 시작하기

Self Referencing is Classy

아마 눈치채셨겠지만, 스파이더 클래스 안에서 start_requestsparse 메서드에는 항상 인자 self를 넣어요(이번 연습 문제의 샘플 코드를 확인해 보세요!). 이렇게 하면 클래스 내부의 메서드들끼리 서로 참조할 수 있어요. 예를 들어 start_requests 메서드 안에서 parse 메서드를 가리키려면 그냥 parse가 아니라 self.parse라고 써야 해요. self를 붙인다는 건 코드에 “start_requests와 같은 클래스 안에서 parse라는 메서드를 찾아서 사용해”라고 알려 주는 거죠.

이번 연습에서는 이런 "self 참조(self referencing)"를 직접 다뤄 보겠습니다.

이 연습은 강의의 일부입니다

Python으로 하는 웹 스크레이핑

강의 보기

연습 안내

  • scrapy 스파이더를 만들기 위해 필요한 클래스 YourSpider에 필수 scrapy 객체를 채워 넣으세요.
  • start_requests 메서드의 빈칸에 문자열 인자 "Hello World!"를 넘겨 print_msg 메서드를 사용하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

# Import scrapy library
import scrapy

# Create the spider class
class YourSpider( ____ ):
  name = "your_spider"
  # start_requests method
  def start_requests( self ):
    self.print_msg( ____ )
  # parse method
  def parse( self, response ):
    pass
  # print_msg method
  def print_msg( self, msg ):
    print( "Calling start_requests in YourSpider prints out:", msg )
  
# Inspect Your Class
inspect_class( YourSpider )
코드 편집 및 실행