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を起動させます



③Networkをクリック



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



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



XAMPPの表示が出たらOKです



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



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



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



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


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

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

まとめ

いかがでしたか?今回はPHP開発環境の下準備及び、簡単なデータ収集プログラムの作成、及びプログラムのテストを行いました。
収集されたデータは、ブラウザにアウトプットではなく、ファイルに書き込みこともできます。
テキストファイルの他に、画像や動画まで収集可能です!
また、詳しいデータのクリーニング方法は、simple_html_dom.phpに参照してください。