【PHP】Simple HTML DOM Parserを使って指定Webページの記事タイトルを取得する

公開日: : 最終更新日:2014/08/14 PHP

スポンサーリンク

PHPのスクレイピングライブラリのSimple HTML DOM Parserを使って指定Webページのタイトルを取得してみます。
まずはスクレイピングの対象とするページを決めます。今回はこの前のブログのこの記事にします。

そしたら、そこのタイトルの要素がどのようになっているのかブラウザから調査します。今回はChromeで調べましたが、他のブラウザでもこういった機能は付いているのでそちらを活用してください。

20140526-1.jpg

右クリックから『要素を検証』をクリックし、タイトル上でさらに右クリックするとその要素部分にまで移動します。

20140526-2.png

するとこのページのタイトル部分は単純な『h2』タグで囲まれていることが判明しました。
後はsimplehtmldomparserを使ってその要素のタイトル部分となっているテキストを取得してくるだけです。

require_once dirname(__FILE__) .'/simple_html_dom.php';
//指定したURL
$url = 'http://shouginekochann.blog9.fc2.com/blog-entry-213.html';
//URLからsimple_html_domオブジェクトを生成する
$html = file_get_html( $url );
//指定要素の中のテキストを取得
//第2引数に0を指定しない場合simple_html_domオブジェクト配列が返ってくる
$title = $html->find('h2',0)->innertext;
//メモリの解放
$html->clear();
echo "タイトルは『".$title."』です。";

(↑ブログの編集でリンク先を追加しました)

こんな感じでタイトルを無事取得できました。findの第一引数はjQueryのセレクタとほぼ同じです(違いはよく知りませんごめんなさい)。第2引数は複数要素ある中の何番目かどうかといった指定で、この場合は要素が一つしかなく、当然、一番初めにくるので0を指定していますが、例えば、複数ある場合で2番目が欲しいときは1を指定してください。

こういったブログ形式のものであれば各記事のタイトルや作成日時、タグなどの情報はいつも同じ要素で指定されているため、この応用でどんな記事のどの要素でも取得してくることが可能です。
ただし、スクレイピングは先方にも迷惑になる場合があるので十分注意して行ってください。

カードキャプターさくら ねんどろいど 木之本桜 (ノンスケール ABS&PVC塗装済み可動フィギュア)

スポンサーリンク
Amazon
  • このエントリーをはてなブックマークに追加

関連記事

【PHP】ミリ秒を取得することで制限時間を設けて処理をする

PHPで時間制限を設けてタイマーのような処理をするときの制限の付け方として、処理のはじめの時刻と処理

記事を読む

【PHP】Twitterのツイート数やはてぶ数を取得する

指定URLのTweet数の取得 Twitterでツイート数を取得するには指定のURLにアクセスする

記事を読む

【PHP】headerでContent-Typeを指定したのに効かない場合の対処法

PHPでサイトマップを作ろうと思い、XML形式のファイルを出力しようとしてheaderを指定したのに

記事を読む

【PHP】正規表現で日付文字列から曜日を削除する

例えば次のように曜日が記述された日付があったときその曜日部分を削除する場合のときの正規表現は次のよう

記事を読む

【TwitterOauth】特定のつぶやきを取得してリツイート数順やランダム順にする【PHP】

TwitterOauthを利用して特定のワードをつぶやいたデータを取得してそれをリツイート順なりに並

記事を読む

【PHP】Simple HTML DOM Parserを使って属性の値を取得する

PHPでSimple HTML DOM Parserを使ったスクレイピングで指定の属性の値を取得する

記事を読む

【CakePHP3】無関係な複数テーブルのデータを一つのコントローラで扱う

CakePHP3で一つのコントローラないでお互い独立したテーブルを扱うには単純にTableRegis

記事を読む

スクレイピングをサポートしてくれるAPI【kimono】

kimonoというスクレイピングをAPI化してくれるという素晴らしいサービスがあります。

記事を読む

【PHP】usortのfunctionでCannot redeclare(再定義)される

初心者なのでusortがいいものかどうなのかよくわからないのですが、usortの関数定義をするとたま

記事を読む

【PHP】file_get_contentsでリンク元などのヘッダ情報を変更する

file_get_contentsで他サイトの情報を読み取る際などでリンク元を明記したい場合は以下の

記事を読む

Windowsユーザが初めてMacBookを購入したときの注意点や感想

最近12インチのMacBookを購入しました。今までWindowsしか

Redmine3.2をUbuntu14.04にインストールして躓いた所についてメモ

はじめに Ubuntu14.04 ServerにRedmine3.2

UWSCを使ったソフト自動立ち上げ【SoftEther VPN Server】

やりたいこと 最近SoftEtherという筑波大学発のベンチャー企業

【PHP】headerでContent-Typeを指定したのに効かない場合の対処法

PHPでサイトマップを作ろうと思い、XML形式のファイルを出力しようと

スマホ向け幅固定サイトの回転時の幅対応方法

幅固定サイトでのスマホ回転時Webサイトの横幅を合わせる方法のメモ。

【PHP】特定のURLからそのAtomやRSSのフィードを抽出する方法

特定のURLからRSSやATOMのフィードを抽出する方法をメモ。 流

フィード抽出ツール(RSS1.0、RSS2.0、atom)

任意URL サイト名 サイトURL RSS1.0

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑