【価格.コムやAirBnBから】データを取得【スクレイピング】

スクレイピングは色々な方法がある。恐らくエクセルVBAでもできる。

まずは何をやりたいか。
データが欲しいのか/ウェブサイトに組み込むのか。

データが欲しい場合は、この記事を参照(エクセルで新iphoneを予約)。

今回はPHPを使う ←ウェブ上で動的に扱う

過去に、価格.comで欲しい商品があったので、自分のサイトに価格情報を引っ張ってきた事がある。スクレイピングは面白いと思ったね。

まず記事や投稿内にphpを読み込む。ショートコードを使う。

① 子テーマを導入する
FTPを操作して、子テーマフォルダ(755)を作成。

子テーマを作ってWordPressの既存テーマをカスタマイズする方法

上記のように、style.cssに2行書き込む。function.phpを新規に作成。以下の様に子テーマのを改変。

【wordpress】投稿・固定ページ内にPHPファイルをインクルード(挿入/実行)させる

ここまでやったら、記事にショートコードを書けばよい。
すると自分の作ったPHPが呼び出せる。引数を渡すので:

listingはfunction.phpに新規作成。今回はの空き状況や値段を取得する。

実験していたら、恥ずかしながらJSONという言葉を初めて知った;

ああ、やはり面倒だからヤメ・・・ 何かハマったようだw

しかも子テーマが崩壊した・・・(驚)
どうやら親テーマでしか上記ショートコードが動かない。。

仕方ないのでもうちょっと続けるか

file_get_contentsでやろうと思ったら、Airbnbではエラーが出るので以下で以下で解決した。エージェントを挟む。

ということで、あとはデータを整形すればOKだろう。

var_dump(json_decode($data, true)); と書き込んで、”,true”を付けるかどうかは取り出し方法によるってことが判った。

ただJSONデータが取得できる場合と、そうでない場合がある。。。

取得先が問題なのか?とJsonファイルをWordpress上にアップ。

WordPressにテストファイルをアップロードする[JSONなどデータ一般]

そうでもない。。Airbnb側の問題でもなく、自前鯖でも起こる。

結局は、文が汚いのでミスっていたらしい。よくわからない。

以下でcalender_months以下の子要素を全取得することができた。

それであとはゴリゴリやって、できました。。phpは久々で、新規にやった事が多く、時間がかかりましたが、勉強になりました^^

取得した結果を見て、愕然です。

スゲー貸している人、いるんですよね。驚きました。

QR Code