LoginSignup
12
10

More than 3 years have passed since last update.

Google拡張機能とGoogleSpreadSheetで簡単スクレイピング。

Last updated at Posted at 2019-05-17

環境準備

 Google ChromeとGoogleSpreadSheetかエクセルがあれば十分です。
 Pythonとか使いません。プログラミングもしません。エクセル関数は少し分かっていると便利かもしれません。
image.pngimage.png

ScraperをGoogleChromeに追加する

 Google Chromeの拡張機能であるScraperを利用します。
image.png
Scraper - Chrome ウェブストア

 Scraperのアイコンimage.pngが検索バーの横に追加されれば準備完了です。
image.png
こんな感じ。

Kindleの購入履歴をスクレイピングしてみる

 今回はKingleの購入履歴から、これまで購入した書籍のタイトル、著者、購入日をまるっと取得してみたいと思います。
 選択してコピペするだけでも情報は取得できますが、一ページに収まりきらない場合、何度もコピペを繰り返すことになり非効率的です。一瞬で全データを取得してみましょう。

スクレイピングしたい要素を特定する

  1. まずはスクレイピングしたいページをGoogleChromeで開きます。
    image.png

  2. キーボードの「F12」を押します。
    image.png

  3. 画面左上のボタンimage.pngをクリックします。ボタンの色が変わります。image.png

  4. この状態でサイト上の取得したい要素の上にカーソルを当てると…要素の識別子が表示されます。左端の紫色の文字をメモっておきましょう。(紫以外の部分も役立てることができますが、難しいです。うまく使うと最初から欲しい要素のみ抜き出せます。学習コストが高いのでちょっとやってみたい人は手を出さなくていいです。)
    image.png

Scraperを使う

  1. 取得したいサイトを開いた状態で、Scraperのアイコンをクリックします。
    このアイコンです。 image.png

  2. メニューが表示されるので「Scrape similar...」をクリックします。
    image.png

  3. こんな感じの画面が表示されます。
    image.png

  4. 欲しい要素を取得してみましょう。とりあえず、Selectorで「XPath」を選択して先ほどメモした紫色の文字の部分を入力します。メモした文字の前に「//」をつけましょう。今回は「//div」と入れます。
    image.png

  5. ColumnsのXPathに「text()」を入力してみましょう。Nameはなんでもいいです。
    image.png

  6. Scrapeボタンを押しましょう。
    image.png

  7. こんな感じでサイトに表示されていたテキストが取得できます。
    image.png
    image.png
    が…不必要なデータ(「ローン」とか)が含まれていたり、書名、著者名、日付が縦に並んでしまってとても見辛いです。データを整形してみましょう。

データを出力する

一画面ではデータが表示しきれませんし、これではデータ操作ができません。
そこで、「Export to Google Docks...」をクリックしてGoogleSpreadSheetに出力します。(「Copy to clipboard」をクリックしてコピーしエクセルに貼り付けてもいいです。)
image.png
image.png
こんな感じに出力されます。

整形する

関数を使って必要な行の情報だけ取得します。
データはタイトル→ローン→著者名→購入日→コンテンツへの登録数の順に規則的に並んでいるので、関数を使えば簡単に整形できます。
image.png

整形の仕方は下記のリンクを参照してみてください。
1列に羅列されたデータを複数の列で並び変える方法(EXCEL) | 東京文久堂 | 東京文久堂
Excel(エクセル)で1列のデータを2列や3列などの複数列に分ける方法 | Prau(プラウ)Office学習所

今回は作業用列と関数を使いました。

=indirect(ADDRESS(row()+B$44+$F46*4,1))

image.png

こんな感じの仕上がり。雑ですが、欲しい情報は取れました。
image.png

感想

 最初はXPathのところで手間取ったので30分くらいかかりました。
XPathで要素を抽出することを諦めて、GoogleSpreadSheetで処理したらすぐに片付きました。よくわからないことに拘らず、他の簡単な方法を探すのはすごくありです。それぞれ得意不得意あるので、得意な処理の仕方を使いましょう。
 お伝えしたかったのは、プログラミングなんてできなくても、スクレイピングはできるということです。簡単に使えるツールはたくさんあります。GoogleSpreadSheet自体にもスクレイピングができる関数があります。
 難しそうと敬遠せずに調べてみると色々できるようになって楽しいです。プログラミングできないと言う人も是非スクレイピングしてみてください。便利です。

12
10
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
12
10