読者です 読者をやめる 読者になる 読者になる

by shigemk2

当面は技術的なことしか書かない

PythonによるWebスクレイピング入門 #lldiver

PythonでWebスクレイピングを行うためには、いろいろなアプローチが存在します。このセッションでは、Webスクレイピングを行う場合に、有用なライブラリの紹介、クローリング、データの取得方法などについてお話しします。

Webスクレイピングとはなにか

  • WebサイトからHTMLデータの収集
  • 特定データを抽出、加工
  • 抽出したデータを再利用
  • クローラー、スパイダー

English 削る ページから必要な内容を抽出する

用途

  • 検索エンジン
  • 価格比較
  • 気象データの監視
  • マッシュアップ

など

方法1

  • kimono
  • import.io
  • Yahoo Pipes

方法2

Ruby

Perl

Pythonでのスクレイピング

  • 標準ライブラリ
  • BeautifulSoup
  • pyquery
  • Scrapy(読み方が結構揺れてるけどスクレピー)

Python=バッテリー付属言語

標準ライブラリ

ネットワーク、正規表現

処理系だけあればいいので、簡単なスクレイピングであれば結構実用的なものが標準ライブラリだけで出来るくらいライブラリが充実している

BeautifulSoup

  • 2004年からあるライブラリ
  • HTMLやXMLからデータを抽出して取得できる
  • 複数のパーサに対応してて、パーサを指定できる
  • 最新バージョンは4系

pyquery

  • jQuery風にHTML/XML操作が可能
  • パーサーはlxmlを仕様(高速)
  • jQueryのセレクタが使える
  • スクレイピング

Scrapy

  • Scrapyは早くて、ハイレベルなスクレイピングクローラーのフレームワーク

  • クローリング スクレイピング

  • シンプル、拡張性がある
  • バッテリー付属
  • ドキュメント テストが充実
  • コミュニティが活発
  • 3系には未対応

  • Webページから情報抽出

  • Robots.txtのパース
  • IPアドレス単位のクロール間隔を調整する

Scrapy Engine

  • 全てのコンポーネントを制御

手順

  • Scrapyプロジェクトの作成
  • 抽出するアイテムの定義
  • アイテムの抽出とクローリングのためのSpiderを生成

matome

  • Pythonでスクレイピングをやる場合は様々なアプローチがある
  • 要件にあわせて使用すればよい
  • LLにはスクレイピングライブラリが沢山ある