WordPressでWebスクレイピングできるプラグインを使用してWebアプリをつくってみた

タイトルの通り、WordpressでWebアプリを作成してみました。

しかし、Wordpressでつくろうと思い立ったのは良いとして、そもそもどの程度のアプリであればWordpressで作成できるのかという知見が私自身にありません。

作りたいものはシンプルですし、恐らくできるのではないかと思っていたのですが、取り掛かりは本当に作れるか半信半疑という感じでした。

スポンサーリンク




どのようなアプリを作りたいのか

作成したいアプリは公開企業の売上や利益のデータを取得して、利益率を計算するようなシンプルなアプリです。

アプリに使用するデータに企業の財務データが必要となります。

まず、その企業の財務データをどのように集めるかを考えたのですが、そういうAPIがあれば良いなあと考えておりましたので探してみました。

投資するための財務分析step1「財務情報XBRLを取得する」

こちらのページを参考にすると、有報キャッチャーというサービスが財務データに関するAPIを提供しているようです。

ただ、こちらで取得できるのはあくまでXML文書ですので、そこからXBRLファイルを取得して、さらに中身のデータを抜き出さなければなりません。

スキル的にも、時間的にも、これに挑戦するのは少し難しいと感じました。

WordPressを使用するわけですから、そもそも既存データを解析した上でデータベースに保存するというようなバックエンドの事は極力考えたくないわけです。

結局行き着いた発想というのが、都度スクレイピングするという発想でした。

ただスクレイピングって参照先のサイト様に負担をかけるという内容の記事をどこかで見たことがありましたので、あくまで個人使用に限って使用することにしました。

どのように実装するか

スクレイピングでデータを取得することが決まりましたので、次はどのように実装するかを考えます。

さすがにWordpressのプラグインでそれを実現できるプラグインはないのではないかと思い込んでいましたので、初めにPHPのライブラリなどを探したわけですが、意外にも調べているとWordpressのプラグインでも実現できることが分かりまして、そのプラグインを使用することにしました。

WP Web Scraperというプラグインです。

WP Web Scraper

これまでスクレイピングの機能を実装した経験がありませんでしたので、具体的にどういうコードを書けばよいのか分かっていなかったのですが、このプラグインを使用すると、簡単なテンプレートタグやショートコードを一行記述するだけで結果を得ることができます。

【テンプレートタグの場合】

<?php echo wpws_get_content("https://www.yahoo.com/", "ol.trendingnow_trend-list", array('output' => 'text')); ?>

【ショートコードの場合】

[wpws url="https://www.yahoo.com/" query="ol.trendingnow_trend-list" output="text"]

どの部分を取得するかを指定するクエリもCSSセレクターXPath正規表現を利用して指定することができます。

WP Web Scraperのドキュメント
http://wp-ws.net/docs/query/

例えば、Yahooファイナンスのこちらのページから売上高営業利益のみ抽出したい場合、以下のようにクエリを書いてあげることで取得できます。

[wpws url="http://profile.yahoo.co.jp/independent/2379" query="table.yjMt tr:nth-child(6) td, table.yjMt tr:nth-child(7) td" output="text"]

本当にCSSセレクターと同じ書き方で取得できますので、XPathとか正規表現とかよく分からんという私のような人間でも簡単に使えます。

このプラグインのおかげでクエリを指定するだけで大半の目的は果たせましたので、後はデータを整形して表示させるだけで済みました。

やりたいことを実現できるプラグインがあれば、Wordpressでもそれなりのアプリができる気がしています。

今回、自分の作りたいと考えていたものをつくるためにWordpressでのアプリ作成にチャレンジしたわけですが、やはり、作ってみたいサイトやアプリがあることが、手段を考えるよりも大事だなあと、つくづく思います。

Wordpressの中級者以上を目指すなら

Wordpressの中級者以上を目指すのであればオンラインスクールもおすすめです。

筆者も講師(メンター)の一人ですが、オンラインスクールの一つ「Techacademy」ではWordpressをカスタマイズするために必要なカリキュラムが用意されています。

オンラインブートキャンプ WordPressコース

Wordpressにも利用されているPHPを利用してWebアプリケーションを開発してみたい方には「PHP/Laravelコース」がおすすめです。

オンラインブートキャンプ PHP/Laravelコース
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする