PHP

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に参照してください。