LoginSignup
6
3

More than 1 year has passed since last update.

迷えるサンタさんへ ノーコードでスクレイピングしてクリスマスプレゼントを探す

Last updated at Posted at 2022-12-24

╭━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╮
 まだプレゼント何にするか考えてないぞ!
╰━━v━━━━━━━━━━━━━━━━━━━━━━━━━━━━╯

そのようなサンタの方はamazonをスクレイピングしてプレゼント候補を見つけましょう。
しかしながら、必ずしも全てのサンタさん(親御さん)がコードを書けるわけではなく、クリスマスイブ当日に打ちひしがれている方もいらっしゃるのではないかと思いました。

そこで本記事では、Google SpreadSheetを活用したスクレイピングを紹介していきたいと思います。

本記事では従来のスクレイピングであるimportxmlを前段として紹介しています。
本題についてはImportFromWebの部分からとなりますので、前段部分は読み飛ばしていただいても構いません。

importxml関数

Google SpreadSheetに備え付けられた関数です。
URLとXPathからHTML要素を抜き出して表示することができます。

importxmlでyahooのトップページをスクレイピングする

まずは試しにyahooのトップページニュースタブにあるニュースをimportxmlでスクレイピングしてみます。
元のページは下の図の通り

これをスクレイピングしてスプレッドシートにまとめたものが以下の通りとなります。

yahooのページから情報を取得してまとめることができました。

【参考】 ページ要素からのXPath取得

  1. ブラウザの開発者ツール(F12キーで開きます)で、取得したい要素をクリックします。
  2. 該当するHTML要素の部分で右クリックしてcopy > copy XPathをクリックすると、クリップボードにコピーされるので、スプレッドシートに貼り付けてください。

importxmlでAmazonのページをスクレイピングできるのか

できません。対策されています。

スクレイピング対策を施しているサイトをスクレイピングするためには、ブラウザを自動操作して、DOM要素をページに出力してもらわなければなりません。

そのためによく使われるのがPythonSeleniumですね。

気が向いたらseleniumでスクレイピングしてBeautifulsoupで加工する記事も上げたいと思います。

革新的ノーコードスクレイピングImportFromWeb

それでは今年はスクレイピングできそうにない。
プログラミングを勉強して、クリスマスプレゼントを検索するのはまた来年になりそうだと、落ち込むにはまだ早いです。
chromeの拡張機能にImportFromWebというものがあり、こちらを使えばノーコードでスクレイピングできます。

むしろseleniumでコード書くより圧倒的に早く、私も驚きました。

Amazonのページをスクレイピングする

1. ImportFromWebのインストール

上記サイトよりアクセスしてインストールしましょう。

2. スプレッドシート上で拡張機能をオンにする

ただインストールして=importfromweb()と打ち込むだけでは使えません。
拡張機能のタブから有効化しましょう。

Activate add-onをクリック

3. AMAZON SEARCH RESULTSのテンプレートを実行

Activateすると下の写真のようなサイドバーが現れると思います。
TEMPLATESタブからAMAZON SEARCH RESULTSを選択しましょう

スクリーンショット 2022-12-24 23.07.47.png

4. テンプレートに従ってスクレイピング

少しのロード時間の後、iPhone Coverの検索結果をスクレイピングしたサンプルが出てくると思います。

E3セルのチェックを外して、F5セルにクリスマスプレゼントと入力してみましょう。

検索結果がスクレイピングされて、スプレッドシート上にまとめられました。

ImportFromWebについて

今回は検索結果をスクレイピングしてみましたが、各商品のページ要素を取得したり、Amazon以外のサイトのテンプレートが用意されていたりと、想像以上に使いやすいものでした。
気になった方は試してみてください。

普通に検索するだけではダメなのか

特に問題ありません。

6
3
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
6
3