skillup

技術ブログ

PHP

PHPでのスクレイピング

投稿日:2016年3月2日 更新日:

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

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

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

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

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

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

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

例えば

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

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

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

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

参考リンク

PHPでHTMLをパースして解析する簡単な方法

[PHP]DOM, XPathを使ったスクレイピング(HTMLのタグ内容取得)

PHPネイティブのDOMによるスクレイピング入門

-PHP
-

執筆者:


comment

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

関連記事

no image

CakePHPでのプレフィックスルーティング

cakePHPではルーティングがデフォルトでは/コントローラ名/アクション名となります。 ところが管理画面などはadmin/コントローラー名/アクション名などと変則的なURLにしたいことも多いでしょう …

no image

HTMLの画像化について

7月にHTMLを画像化する処理なんてものをやりました。 コード自体は複雑なことはなかったんですが、新規で覚えることがそこそこあったので、メモしておきます。 Contents1 html2canvas1 …

no image

PHPでのコンソール入力に関して

PHPはほとんどの場合、ブラウザでURLをたたいてWEBサーバーから呼び出されるパターンがほとんどです。 ところが、コンソールから使いたい場合などもあるでしょう。 コンソールから入力する場合、なんらか …

no image

laravelのmigrationに関して

DBのカラムの保守などをする場合のmigrationに関して。 ポツポツ使っていたのですが、しっかりまとめてなかったのでここでまとめて見ようかと思います。 Contents1 カラム定義2 実際の実行 …

no image

S3 commandPoolについて

S3のcommandPoolに関して。 S3にファイルをアップロード、ダウンロードするときに、1つ1つファイルをアップロード、ダウンロードすることが一般的かと思いますが、ファイル数が多くなるとなかなか …