Tidyは、「Tidy HTML clean and repair utility」用のバインディングで、 HTML文書の誤りを直すだけでなく、操作することやドキュメントツリーを操作することも可能となります。 とありますが、目的のノードを取得するのはhtml、bodyから辿っていかないとダメっぽい?ので面倒です。なのでtidyではぶっ壊れてるかもしれないhtml/xmlを修正して、パースは別のライブラリ使ったほうが便利です。 お手軽なのはSimpleXMLでしょうか。xpathも利用できるし。ただxpathは重い処理になるとのことですが。。。 またamp;が存在するとどういうわけかSimpleXMLが解釈できないため、 tidyのオプションでquote-nbspをfalseに指定するも下記掲示板の記述にあるように動かず。一体どういうことなんだ?? まぁ仕方ないのでereg_replaceで
野暮用でphpのスクレイピングについていろいろと調べて、いくつかライブラリを見つけました。 HTMLScraping WebScraper Snoopy rhaco Tidy関数 この中で、個人的に気に行ったのはHTMLScrapingです。このライブラリの手順は以下の通りです。 HTTP_RequestでHTML文書を取得します。 サーバにTidy拡張が導入済みならTidy関数でHTMLをXMLに変換(修正)します。導入されていなければHTMLParserという同じ作者が作ったHTMLをXMLに整形するライブラリを用いてXML化します。 XML化した文書をSimpleXMLとして出力します。 お好みでCache_Liteに保存できます。 HTMLScrapingライブラリを使えば、サーバにTidyが入っているかどうかにかかわらず、HTML文書をSimpleXMLオブジェクトに変換すること
htmlSQLはWebスクレイピング(部分的にHTML抽出)を可能にするPHPライブラリです。ソースが公開されていたのでご紹介します。 ※先日、お知らせさせて頂きましたように、この記事は僕が管理していた別のブログの過去記事を移行したもので正確性に欠ける可能性があります。何卒ご了承願います。 HTML内を部分的に取り出し、表示する事で、それを容易にするスクリプトがhtmlSQLというPHPライブラリです。DOM解析をSQL風に指示するらしい。 デモがありますのでご体感下さい。→htmlSQL – live example 以下のコードを使うようです。 <?php /* ** htmlSQL - Example 1 ** ** Shows a simple query */ include_once("../snoopy.class.php"); include_once("../htmlsq
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く