34
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

import.ioのアプリケーション版でスクレイピングをやってみる

Last updated at Posted at 2015-08-19

はじめに

はてブにimport.ioというスクレイピングツールが紹介されている。
http://b.hatena.ne.jp/entry/nelog.jp/import-io
このツールを使うことができればスクレイピング用のコードを記述しなくともデータの取得ができる。
ウェブサービス版だけでなくアプリケーション版についても少しだけ使ってみたのでノウハウを書き出しておく。
例がひどいかもしれないがそこは気にしてはいけない。

ウェブサービス版とアプリケーション版の違い

ウェブサービス版

  • 登録などもなく簡単に使える
  • ページ内に複数のリストがある場合はどこが取得されるか分からない
    • このページをウェブサービス版のスクレイピングをかけると以下の様な取得結果となる

import_io_web_01.PNG

アプリケーション版

  • アプリケーションのインストールが必要
  • アカウントの登録が必要(githubやgoogleのアカウントでOK)
  • スクレイピングルールをAPIとして登録できる
  • APIを複数のウェブページに適応し、それをまとめて実行し、1つのCSVとしてDLできる

アプリケーション版のインストール

import.ioのpricingからダウンロード後、インストールするだけである。
アカウントも必要になるが登録、利用は無料である。

アプリケーション版について

概要

アプリケーション版で行うことはスクレイピングルールであるAPIを作成し、
それを対象となるウェブページに適応することである。

目的

.lainの作品別のページ(こことかこことか)にAPIを実行し、以下の様なデータの取得を目指す。

title media start_date chara cv
アイドルマスター シンデレラガールズ TVアニメ 2015年1月9日 島村卯月 大橋彩香
アイドルマスター シンデレラガールズ TVアニメ 2015年1月9日 渋谷 凛 福原綾香
聖剣使いの禁呪詠唱 TVアニメ 2015年1月11日 灰村諸葉 石川界人
聖剣使いの禁呪詠唱 TVアニメ 2015年1月11日 嵐城サツキ 竹達彩奈

APIの新規作成

MyData画面からNewと書いてあるセレクトボックスを選択することで新しいAPIを作成できる。

import_io_app_01.PNG

Magicはウェブサービス版で使われている機能と同じで細かい設定をすることができない。
そこで今回はExtractorを選択してより詳しいルールのAPIを作成する。
ちなみにClassic ExtractorとAuthenticated Extractorについてはまだよく分かっていない。

APIの実装については動画やヘルプを参考にしながら行うと良い。
丸投げしているようであるが筆者もまだ分かっていないところが非常に多いため、そちらのほうが確実である。
ここで自動取得モードが適応できれば非常にラッキーである。
ちなみに筆者は確実に行うために、CSSやJSを切って、取得したい部分を2行以上ドラッグで選択というまどろっこしい手段を用いたりした。
なおスパナボタンであるadvanced setting内でxpathやregexを用いて指定することができるため、奥の手としてこれを用いることも出来る。

import_io_app_02.PNG

固定値の入力

特定のカラムに同一ページから取得した同じ値を入力したい場合はxpathで直接指定してやるとスムーズである。
xpathはchromeのデベロッパーツールから取得するのが手っ取り早い。

import_io_app_03.PNG

スパナボタンであるadvanced settingからxpathを用いて指定することができる。

import_io_app_04.PNG

以下のように一括で入力することができる。

import_io_app_05.PNG

APIの完成

APIが完成したらDONEボタンを押してAPIに名前をつけ、保存する。
これで対象以外のページでもこのAPIを利用してスクレイピングすることが可能になる。

複数のウェブページに対して一括実行

MyDataページから作成したAPIとBulk Exportモードを選択し、取得対象となるページを複数入力する。

import_io_app_06.PNG

少々時間はかかるが以下のように一括で取得することが出来る。

import_io_app_07.PNG

なおCSVで出力した場合、表示されているカラムの順番と出力されているカラムの順番に差があるようである。
スクレイピング先のURLについては自動的に挿入されるようである。

import_io_app_08.PNG

利用雑感

非常に有用なツールであると思われるが、APIのスクレイピングルールの指定が直接できず、それをやりたいと何度も思った。
また.lainはデータの構造が2011年ごろを境に変わっているので、古いデータを取得する場合はそれに合わせたAPIを作る必要がありそうである。

34
32
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
32

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?