みなさん、WEBスクレイピングしてますか?どんなツール使ってますか? 今回はChrome拡張で使えるとんでもなく便利なスクレイピングツールを紹介します
まずはWeb ScraperをChromeブラウザにインストールしましょう
インストールが完了したらChromeブラウザのデベロッパーツール(右クリック「検証」またはMacは「option」+「command」+「i」キー、Winは「Fn」+「F12」キー)を開くとウィンドウメニューの最後に「Web Scraper」が追加されていればインストール成功です
最初にスクレイピング先のURLとプロジェクト名を登録するため、サイトマップの設定が必要です
サイトマップを作成したら「Sitemaps」一覧に追加されます。 アクセスしたページからどのデータを抜き出すかの新規セレクターを追加するため「Add new selector」ボタンをクリックします
Link
を選択します。
テキストが欲しい場合はText
、aタグごと欲しい場合はHTML
を選択します。:nth-of-type(2)
は削除して
「Multiple」にチェックを入れることでページ内の同じマークアップ要素をすべて取得できます次は取得したリンク一覧から個別ページにアクセスして登録したタグ情報を取得していきます。 「Selectors」に登録セレクタ一覧が表示されています。
先ほど登録した「posts」セレクタをクリックするとパンくずで_root/posts
という階層ができている事が確認できます
ふたたび「Add new selector」をクリックして新規セレクタを登録していきます
主な設定手順は先と同じなので割愛。今回は「posts」を親としてaタグ内のテキストを全取得 「Regex」は文字通り正規表現を設定できますが、今回は使いません
こういう手順で同じ階層で複数のセレクタを登録することができますので、 追加で①タグ情報テキスト、②記事の最後のpタグテキスト、③タイトルの取得セレクタを登録しました
こんな調子でどんどんスクレイピングセレクタ階層を登録できますが、この状態では全体構成がわかりにくいです そこで登録したツリー構造を確認するためメニューから「Selector graph」をクリックします
これでこのサイトマップがどういうフローか一目瞭然ですね
では実際にスクレイピングを開始しましょう! メニューから「Scrape」をクリックすると 「Request interval (ms)」で各ページのアクセスまでの時間(ミリ秒)と 「Page load delay (ms)」でアクセスしたページのレンダリング待機する時間(ミリ秒)を設定します。
開始すると新規ウィンドウが開きスクレイピング処理が実行されます
当然のことですが複数のページにアクセスする場合は相手のサーバー負荷がかからない時間設定にしましょう。あくまで利用は自己責任で!
スクレイピング処理が完了するとウィンドウが消えますので、最後に取得データをダウンロードしましょう
メニューから「Export data as CSV」をクリックしてDownload now!リンクをクリックするとCSVデータがダウンロードできます
感想としては単純にすげー!しかも無料プランでもこれだけできるなんて・・・ 実際にスクレイピングのシステムを開発したことがある方なら、あまりの手軽さにイノベーションを実感できると思います。
さらに有料プランを利用する事で以下の機能も使えるみたいです
あくまで無料で使える範囲は限られているので、実際に自分で開発をする前の取得セレクタやツリー構造のテストで利用するにはもってこいですね