scrapy Selector 소개

Python으로 하는 웹 스크레이핑

Thomas Laetsch

Data Scientist, NYU

Selector 설정

from scrapy import Selector
html = '''
<html>
  <body>
    <div class="hello datacamp">
      <p>Hello World!</p>
    </div>
    <p>Enjoy DataCamp!</p>
  </body>
</html>
'''
sel = Selector( text = html )
  • html 문자열로 scrapy Selector 객체를 생성했습니다

  • selector sel은 html 문서 전체를 선택했습니다

Python으로 하는 웹 스크레이핑

Selector 선택하기

  • Selector에서 xpath를 사용해 html의 특정 부분에 대한 새 Selector를 만들 수 있습니다

  • 반환값은 Selector 객체의 SelectorList입니다

sel.xpath("//p")

# outputs the SelectorList: [<Selector xpath='//p' data='<p>Hello World!</p>'>, <Selector xpath='//p' data='<p>Enjoy DataCamp!</p>'>]
Python으로 하는 웹 스크레이핑

SelectorList에서 데이터 추출

  • extract() 메서드를 사용합니다
>>> sel.xpath("//p")

out: [<Selector xpath='//p' data='<p>Hello World!</p>'>, <Selector xpath='//p' data='<p>Enjoy DataCamp!</p>'>]
>>> sel.xpath("//p").extract()

out: [ '<p>Hello World!</p>', '<p>Enjoy DataCamp!</p>' ]
  • 첫 요소만 얻으려면 extract_first()를 사용합니다
>>> sel.xpath("//p").extract_first()

out: '<p>Hello World!</p>'
Python으로 하는 웹 스크레이핑

Selector에서 데이터 추출

ps = sel.xpath('//p')

second_p = ps[1]
second_p.extract()

out: '<p>Enjoy DataCamp!</p>'
Python으로 하는 웹 스크레이핑

이 과정을 선택하세요!

Python으로 하는 웹 스크레이핑

Preparing Video For Download...