Webデータ取得プラグインでスクレイピング

プラグインを自作

この記事では、JISAKU-HPでダウンロードできるWebデータ取得プラグインのコードを解説しています。

Webデータ取得プラグインは指定したURLのhtmlデータを取得して、ワードプレス管理画面でのWebデータ取得メニューで表示できるプラグインです。

Webデータ取得プラグインのファイル構成

下記より、Webデータ取得プラグインをダウンロードして「vente_scraping.zip」を解凍してください。

[download id=”3159″]

解凍したフォルダには、下記のファイルがございます。

  1. functions.php
  2. scraping.php
  3. 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万円
タイトルとURLをコピーしました