2014年12月21日 15:04

PHP-Goutteライブラリのインストールとスクレイピング成功までのメモ

PHPライブラリ&サンプル実践活用[厳選100] Software Design Plus

PHPでのスクレイピングをしようとしたところ、ライブラリのGoutteを使うらしいというのが分かった。

で、この記事はドットインストールを見ながら構築したローカル開発環境にGoutteを導入して動かすところまでのメモ。

まず前提としては、ドットインストールのローカル開発環境の構築 (全13回) でPHPの導入が済んでいること。

Windowsで、VagrantとVirtualBoxのローカル開発環境です。ただし私の環境では、PHPのバージョンは5.4になっています。

スポンサードリンク

まずはGoutteとスクレイピングについて。

Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。

引用元:WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記

WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記

上記のサイトに詳しい解説があります。ただ、2012年の記事なので色々変わっているところもあるかも(初心者なんでちゃんと理解できてないです。)

次にGoutteを配布してるサイトに行き、そこでzipファイルとGoutte.pharをダウンロードします。

screen shot:FriendsOfPHP/Goutte ? GitHubでzipファイルをダウンロードする

screen shot:FriendsOfPHP/Goutte ? GitHubページをスクロールするとあるGoutte.pharのリンクをクリックする

FriendsOfPHP/Goutte ? GitHub

Zipファイルを解凍するとGoutte-masterというフォルダが展開され、その中にcomposer.jsonというファイルがあります。

以上の2ファイルgoutte.pharとcomporser.jsonを移動します。移動先は実行するphpのファイルと同じディレクトリです。私の場合(ドットインストールを見てローカル開発環境を作った場合)、「myCentOSVM」というフォルダの中にindex.phpがあり、このindex.phpにphpのスクリプトを書いています。なので、「myCentOSVM」フォルダの中が同じディレクトリということですね。

こんな状態にします。

ひとまずGoutteの準備はこれでOK。ただ、ドットインストールのローカル開発環境を追っているだけでは、これらが使えなかったので、以下を行ないました。

comporserの導入

次に、Composerの公式サイトに行きます。

php -r "readfile('https://getcomposer.org/installer');" | php

Composer公式サイトにもある上のコードをコピーしておきます。Lunixで使います。

ドットインストールのローカル開発環境をやってると、
myCentOSVM→ vagrant up → vagrant ssh → [〇〇〇@localhost~]$
みたいにターミナルで進めると思います。(ちなみに私はCygwin(64bit)を使用。)

[〇〇〇@localhost~]$の状態でコピーしておいたコードを貼り付けてエンター。

この後、以下ブログの「インストール」に書いてあったコードもコピペして実行しました。正直ここで何をやってるのか私分かってません...。

Webスクレイピングが捗るGoutteを使ってみる : アシアルブログ

php composer.phar require fabpot/goutte:~2.0

↑これがコピペしたコード。

PHP-xmlのインストールをする

ここまででGoutteを動かそうとしても、

Fatal error: Class 'DOMDocument' not found

などというエラーが出たので調べました。

Fatal error: Class 'DOMDocument' not foundと出たら | PHPの種 ブログ

php-xmlというのをインストールする必要があると分かったので、Linuxの[〇〇〇@localhost~]$の状態で、

sudo yum --enablerepo=remi install -y php-xml

を実行し(↑のコードコピペしてエンター)、「Complete!」が出たらOK。

PHPのプログラミングを実行してみる

次にindex.phpの中身を作って実行するわけですが、ひとまず動くのが確認できれば良いので、他サイトで公開してるのをコピペします。

Webスクレイピングを行う(Goutte)[PHP] - Build Insider

うごいたあああああああああああああ

ネット上では、require_once 'goutte.phar'; の記述部分が違うサンプルもあります。当記事を書いてる今は他のやつ試してないですが、とりあえず上記サイトのは動きました。

動くとこまでできたので、後は色々弄くって自分のやりたいコードに変更する段階ですね。

公式&参考サイト

FriendsOfPHP/Goutte ? GitHub
Composer

WebスクレイピングライブラリGoutteで遊んでみる - hnwの日記
Webスクレイピングを行う(Goutte)[PHP] - Build Insider
Webスクレイピングが捗るGoutteを使ってみる : アシアルブログ
Fatal error: Class 'DOMDocument' not foundと出たら | PHPの種 ブログ

ローカル開発環境の構築 (全13回) - プログラミングならドットインストール
Cygwin(64bit)とgitのインストール - Qiita

プログラミングカテゴリの他の記事はこちら。
PHPカテゴリの他の記事はこちら。

スポンサードリンク

news

新作同人誌! MEMORIE(あまんちゅ!イラスト本)の通販 → メロンブックス

イラスト・漫画など活動報告 → イラスト・漫画仕事および同人活動の記録| 絶版あかみる

雑誌掲載されました

絶版あかみるを登録する

follow us in feedly
  • RSS
  • Twitter(@akamiru_)
  • おしらせ

    カテゴリーはページ最下部、月間アーカイブなどは「サイトマップ」にまとめてあります。

    Kindleセール情報

    Google先生に怒られたっぽいのでしばらく削除します。すみません。

    青年コミック(4社選)の3ページ分(人気順)から情報を取得。