scrapy Selector 入門

Pythonで学ぶWebスクレイピング

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 を作成

  • セレクタ sel は HTML ドキュメント全体を選択

Pythonで学ぶWebスクレイピング

Selector の選択

  • Selector 内で xpath を使い、HTMLの特定部分の新たな Selector を作成

  • 返り値は SelectorSelectorList

sel.xpath("//p")

# 出力される SelectorList: [<Selector xpath='//p' data='<p>Hello World!</p>'>, <Selector xpath='//p' data='<p>Enjoy DataCamp!</p>'>]
Pythonで学ぶWebスクレイピング

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で学ぶWebスクレイピング

Selector からの抽出

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

second_p = ps[1]
second_p.extract()

out: '<p>Enjoy DataCamp!</p>'
Pythonで学ぶWebスクレイピング

このコースを選ぼう!

Pythonで学ぶWebスクレイピング

Preparing Video For Download...