この記事では、JISAKU-HPでダウンロードできるWebデータ取得プラグインのコードを解説しています。
Webデータ取得プラグインは指定したURLのhtmlデータを取得して、ワードプレス管理画面でのWebデータ取得メニューで表示できるプラグインです。
Webデータ取得プラグインのファイル構成
下記より、Webデータ取得プラグインをダウンロードして「vente_scraping.zip」を解凍してください。
[download id=”3159″]
解凍したフォルダには、下記のファイルがございます。
- functions.php
- scraping.php
- phpQuery-onefile.php
<?php /* Plugin Name: Webデータ取得プラグイン Plugin URI: https://jisaku-hp.jp/ Description: htmlデータを取得できるプラグインです。 Author: 廣本 隆史 Version: 1.0 Author URI: https://jisaku-hp.jp/ */ function scraping_menu() { add_menu_page('Webデータ取得', 'Webデータ取得', 1, 'scraping', 'scraping', 'dashicons-building' ,225); } add_action('admin_menu', 'scraping_menu'); function scraping() {include 'scraping.php';} ?>
functions.phpの2行目から9行目まではプラグインの情報、10行目から14行目はワードプレス管理画面にメニュー表示するコードです。
<textarea style="width:100%; height:500px;"> <?php require_once("phpQuery-onefile.php"); $html = file_get_contents("https://jisaku-hp.jp/post-2993/"); $text = phpQuery::newDocument($html)->find(".building-box")->html(); for ($i = 2; $i <= 3; $i++) { $html = file_get_contents("https://jisaku-hp.jp/post-2993/".$i); $text .= phpQuery::newDocument($html)->find(".building-box")->html(); } $array = array( ' ', ' ', "\r\n", "\r", "\n", "\t" ); $string = str_replace( $array, "", strip_tags($text) ); $string = str_replace( "マンション名", "\n", $string ); $string = str_replace( array("住所","価格"), "\t", $string ); echo $string; ?> </textarea>
scraping.phpはワードプレス管理画面のメニューに表示するページで、指定したURLの要素のHTMLデータをテキストエリアに表示します。3行目の「require_once(“phpQuery-onefile.php”);」は「phpQuery-onefile.php」のファイルを読み込んでいます。このファイルがphpコードでスクレイピングするために必要です。
4行目の「$html = file_get_contents(“https://jisaku-hp.jp/post-2993/”);」は、スクレイピングするURLを指定しています。この記事のURLを記述していますが、データを取得したいURLに編集してください。
5行目の「$text = phpQuery::newDocument($html)->find(“.building-box”)->html();」は指定したURLのc「.building-box」の要素の中のHTMLを取得して$textに代入しています。
データが多くページ送りで一覧を表示しているサイトでは、6行目から9行目のfor文の繰り返し処理でデータを取得します。ページのURLはサイトごとで異なりますが、適時編集していただき$iには開始する番号を<=には最後のページ番号を記述してください。
10行目から14行目で取得したデータを「str_replace()」で置換しながら「echo $string;」でテキストエリアに表示しています。
取得したデータをエクセルにコピペして「CSV UTF-8(コンマ区切り)(*.csv)」で保存すればcsvファイルが作成できます。
[modal file=modal]
下記以降は取得するデータです
マンション名 | JISAKU-HPマンション1号棟 |
住所 | JISAKU-HP1-1 |
価格 | 3,000万円 |
マンション名 | JISAKU-HPマンション2号棟 |
住所 | JISAKU-HP1-2 |
価格 | 3,100万円 |
マンション名 | JISAKU-HPマンション3号棟 |
住所 | JISAKU-HP1-3 |
価格 | 3,200万円 |