skillup

技術ブログ

PHP

PHPでのスクレイピング

投稿日:

本日はPHPスクレイピングについて。

スクレイピング自体はRubyJavaとやってきました。

PHPに関しては昔、正規表現でごりごりやってましたね。これを使えば何でもできるんで一番早いです。

が・・保守性、可読性ともによくはないので、今回はHTMLパーサーを使った方法をメモリます。

PHPのスクレイピングはRubyにも負けず劣らずたくさんありますが、一番簡単なのが下記の方法でしょう。

上記のように書き,「xpathでの要素の指定」のところにxpathの記法で要素を指定してあげればOKです。

参考リンク xpathまとめ

http://qiita.com/merrill/items/aa612e6e865c1701f43b

単純にidとかで指定する場合はxpath(“//div[@id=”sample_id”]’)とかで簡単なんですが、classの場合には複数のクラスがある場合が普通です。

例えば

といったクラスがあったときに

とやっても取得できません。

のようにかかないとダメなのです。

あとは$dataListをループで回し、取得してあげればOKです。配列にしてしまうのが一番簡単でしょう。

参考リンク

https://blog.katty.in/1400

http://vsanna.sakura.ne.jp/wp/2015/01/scraping_start_up2/

http://php-archive.net/php/dom-scraping/

http://qiita.com/mpyw/items/c0312271819baee09132

 

 

 

-PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

PHPでのメール送信&カレントディレクトリ

PHPの小ネタ集です。 Contents1 メールでの改行2 PHPでのカレントディレクトリ メールでの改行 メールで改行する場合、いつも\nでOKだったんですが、本日これで送信すると送れないというバ …

no image

laravel Mix

Contents1 laravel Mix2 インストール laravel Mix 実務でlessを使っていて便利なのですが、コンパイルをatomのプラグインで行っていました。 ※保存されると自動的に …

no image

composerでのライブラリ登録

今回はPHPのパッケージ管理ツールであるcomposerへのライブラリ登録を。 Contents1 ライブラリの作成2 packagistへの登録3 呼び出す側3.1 composer.json3.2 …

no image

PHPでのPDF出力 テーブル

PDFで何かを出力する場合、ほとんどが納品書や請求書などの帳票でしょう。 これらもfpdfで出力することができます。 Contents1 ソース2 サンプル3 参考リンク ソース [crayon-5d …

no image

Cakeの共通処理

CakePHPだけに限りませんが、フレームワークの場合、オブジェクト指向の特徴を理解して、全ページに共通な処理などは個々のコントローラーに書くのではなく、もっと抽象度の高いクラスに書いたほうが保守性が …