Edited at

PHPを使った初歩的な情報収集(Web spider)

ご挨拶

おはようございます。今日からQiitaを始めました、CHENです。Qiitaにどんな記事を書くのはまだ決めっていないですが、とにかく手を動かしながら、考えます。

Web Spiderについて

概念

Web Spiderとはプログラミングされた自動情報収集のプログラムと認識して頂くと良いと思います。サーチエンジンのベースとなるスキルとも言えます。

原理

Web Spiderは、プログラムからサーバーに請求を送って、サーバーから情報貰い、その情報をクリーニングした後、欲しい情報だけを、自分のDBやパソコンに保存するプロセスです。

ツール

Java、Python、PHPなど、Web Spiderができる言語は非常に多いです。言語の間では、大きな違いはあまりないと考えます。

ただし、Web Spiderを使って、収集した情報をリアルタイムで自分のサイトに載せる場合に限って、PHPは使いやすい(手間がかからない)点があります。その理由は、PHPがWEB開発に親和性が高いという点からです。

今日のゴール

今日は簡単にPHPを使って、ある就活サイトの情報をまとめて収集します。

下準備

必要なモノは、PHPの開発環境:

方法その一:

APACHE

PHP(最新バージョンで構いません)

具体的なインストールやテストは他のサイトに参考してください。



方法その二:



XAMPP

こちらは手間がかからなく、特にWindowsの場合、ファイルのアクセス権限などの設定も回避ができます。



ーーーーーーーーーーーーーーーー



最後に、Web Spiderで使われるPHPパッケージをダウンロード



simple_html_dom.php

XAMPPを起動します



MACの場合



①インストールされたXAMPPを起動します



②STARTをクリックして、APACHEを起動させます



スクリーンショット 2019-01-11 14.24.10.png

③Networkをクリック



スクリーンショット 2019-01-11 18.48.56.png

④localhost:8080->80をクリックして、Enableさます



スクリーンショット 2019-01-11 18.50.08.png

⑤任意のブラウザを開き、以下のサイトを訪問します



http://localhost:8080



XAMPPの表示が出たらOKです



スクリーンショット 2019-01-11 18.53.08.png

⑥XAMPPのVolumesをクリックし、そしてMountをクリック、最後にExploreをクリック



スクリーンショット 2019-01-11 18.56.43.png

⑦ここでFinderの画面が出て、そしてhtdocsというフォルダを開きます



スクリーンショット 2019-01-11 18.57.50.png

⑧先にダウンロードされたsimple_html_dom.phpをhtdocsにコピー



スクリーンショット 2019-01-11 19.00.10.png

これで前準備は終了、次はコーディングに移ります



Windowsの場合、操作が少し異なるが、XAMPPを稼働させ、最後にXAMPPがインストールされたフォルダにhtdocsを見つけて、同じようにsimple_html_dom.phpをhtdocsにコピーすればOK



コーディング



①まず、先開いたhtdocsフォルダに任意な名前のphpファイルを生成させる、ここでは、Recruit.phpとします(任意なTEXT編集ソフトを使って)


Recruit.php

<?php 

require_once 'simple_html_dom.php';
//外部のsimple_html_dom.phpライブラリを使うことを声明
//ターゲットのサイトアドレスを設定、今回は○ヨタとする
$address = "https://en-hyouban.com/company/00002695955/1/?pagenum=";
//最大13ページの口コミ情報がある、ここではHTML解析の知識が必要
$maxpage = 13;
//すべてのページを巡る
for($x=1;$x<=$maxpage;$x++){
//標的アドレスのページ目を指定
$goal_add = $address.$x;
//標的アドレスのサーバーに情報請求
$html = file_get_html($goal_add);
//コメントが欲しい場合、コメントクラスを指定(HTML解析による)
$page = $html->find('div.comment');
foreach($page as $comment){
echo $comment;
}
}

?>


②以上のような内容を入力し、保存する

③ブラウザに以下のアドレスを入力する

http://localhost:8080/Recruit.php

④しばらくプログラムを動かせ、結果はこうなる:

スクリーンショット 2019-01-11 20.00.27.png


まとめ

いかがでしたか?今回はPHP開発環境の下準備及び、簡単なデータ収集プログラムの作成、及びプログラムのテストを行いました。

収集されたデータは、ブラウザにアウトプットではなく、ファイルに書き込みこともできます。

テキストファイルの他に、画像や動画まで収集可能です!

また、詳しいデータのクリーニング方法は、simple_html_dom.phpに参照してください。