[PHP] 今更 PHP Simple HTML DOM Parserを試す

HTMLくらい知ってるんだからねっ!

HTMLくらい知ってるんだからねっ!

参考リンク

世の中まだまだ「やっとこさHPビルダーで…」っていうウェブサイトが多い。そしてそのほとんどがフィード配信していない。そして意外かもしれないが、ガチガチにCMS組んでるウェブサイトより情報更新頻度が高かったりもする。恐らくHPビルダー(若しくはその他HTMLエディター)での作業が快適になってしまっているので、更新作業(書いてFTPでうp)が全く苦にならないのだろう。逆にCMS化するとそれまでの方法と変わるのでガタッとコンテンツ更新の頻度・生産性が落ちてしまう。そこら辺はメーラー(メールユーザークライアント)からGmail(ウェブメール)への移行のジレンマと共通することだと思う。

さて、とは言え人ん家の庭の木を勝手に切るワケにはいかないので、Librahackみたいにならない程度に、有用な化石コンテンツから必要な情報だけを抜き取り、RSSフィードを生成したい。そう思うのはウェブヲタの性なのではないでしょうか?RSSまで出来ればあとはFeedBurnerに取り込んでTwitterに流したりゴニョゴニョ…(参考リンク:FeedBurnerからTwitterへ自動投稿可能に – F.Ko-Jiの「一秒後は未来」)って出来るワケです。そんなウェブヲタにとって、はたまた「何か面白いウェブサービス作れないかなー」なんて嘆いてる人たちに朗報(しかも古い)です。As you probably wishなまでにHTMLから必要な情報だけ取得してくれる!そんなライブラリがPHP Simple HTML DOM Parserなんですよ!奥さん!!

で?何がしたいのさ?

柳井市のウェブサイトの更新情報から有用なリンクだけ抽出してRSSフィードに変換してFeedburner経由でTwitterから発信したい!!

既存のウェブサービスを使ってHTMLをゴリゴリと処理してもらってRSSにする

Livedoorリーダーで採用されているPage2Feed APIを利用したサービスで強引マイ・ウェイである程度出来ます。これで我慢するという方は以下を( ゚д゚)ノドゾー

これはこれでかなり高機能でスゲ━━━━━━ヽ(゚Д゚)ノ━━━━━━!!!!んですけどねww

ということで早速使ってみる

サンプル通り以下のコード(直下にsimplehtmldomディレクトリを設置した場合)を実行してみる。

<?php
include(‘./simplehtmldom/simple_html_dom.php’);
$html = file_get_html(‘http://mixi.jp/home.pl&#8217;);

foreach($html->find(‘#headerArea h1 a img’) as $e)

echo $e->outertext;

?>

実行結果

Exec-PHPが無いので失礼しましたorz

(重ねて)mixiさん(m´・ω・`)m ゴメン…

じゃ、具体的に…

こちらのサイトをスクレイピングしたいな…ハァハァ(*´д`*)

ソースを見てみると…


<TBODY>
<TR>
<TD width="21"><IMG src="siyakusyo/jokan/jokanimage/listmark.gif" width="20" height="20" border="0" alt=" "></TD>
<TD width="579" valign="middle"><B><FONT size="+2">情報一覧</FONT></B></TD>
</TBODY>
</TABLE>
<IMG src="siyakusyo/jokan/jokanimage/line-gr.gif" width="600" height="3" border="0"><BR>
<BR>
<TABLE>
<TBODY>
<TR>
<TD></TD>
<TD><img src="siyakusyo/jokan/jokanimage/keitaiHP-botan.gif" width="15" height="15" border="0" alt=" "></TD>
<TD width="560"><a href="siyakusyo/syoko/shouhiseikatsu/suishitsukensanityui.html">不審な水道業者の訪問にご注意ください</a>&nbsp;(2010.9.14)&nbsp;</TD>
<TD>&nbsp;</TD>
</TR>

ソース見て絶句グハッΣ(´Д`) tableタグ使うまではいいけどclassとかidとか何一つ要素もトリガーになりそうな記載がねぇ…柳井市パネェっす((((;゚Д゚))))ガクガクブルブル Web2.0を通り越したエディター任せの出力、恐れ入りました。すいませんでした。また出直してきます(:.;゚;Д;゚;.:)ハァハァ

何がいけなかったのか?

つまりHTMLの記載方法が古いのでさすがのPHP Simple HTML DOM Parserさんも(; ・`д・´) ナ、ナンジャコリャ!! (`・д´・ ;)になってしまうので、直接PHP Simple HTML DOM Parserさんに突っ込む前に(mbstringでShift_JISからUTF-8エンコードも含めて)もう一つミドルウェアか何かで下処理をする必要があるということでしょうか? 続く…(多分)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中