こんにちは、ハブロビテス。 この投稿では、
SC Chenと
John Schlickによる PHP Simple HTML DOM Parser (sourceforgeへのリンク)と呼ばれる共同プロジェクトについて説明します。
プロジェクトのアイデアは、セレクターのようなjQueryを使用してhtmlコードを操作できるツールを作成することです。
Jose Solorzanoのオリジナルのアイデアであり、php 4バージョンに実装されています。 このプロジェクトは、php5 +に基づくより高度なバージョンです。
このレビューでは、
公式マニュアルからの簡単な抜粋と、twitterのパーサーの実装例を示します。 公平を期して、同様の投稿が
すでに habrahabrに
存在していることを指摘する必要がありますが、私の意見では、情報が少なすぎます。 このトピックに興味のある方、猫へようこそ。
HTMLページコードの取得
$html = file_get_html('http://habrahabr.ru/');
同志
Fedcompは
file_get_contentsと404応答について
有用なコメントをしました 。 元のスクリプトは、ページ404に要求されても何も返しません。 これを修正するために、get_headersにチェックを追加しました。 変更されたスクリプトは
ここで
取得でき
ます 。
タグ名でアイテムを検索する
foreach($html->find('img') as $element) {
html要素の変更
$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>'); // html (file_get_html() - ) $html->find('div', 1)->class = 'bar'; // div 1 "bar" $html->find('div[id=hello]', 0)->innertext = 'foo'; // div id="hello" foo echo $html; // <div id="hello">foo</div><div id="world" class="bar">World</div>
要素のテキストコンテンツの取得(プレーンテキスト)
echo file_get_html('http://habrahabr.ru/')->plaintext;
記事の目的は、このスクリプトに関する包括的なドキュメント、
公式マニュアルで見つけることができるすべての機能の詳細な説明を提供することではありません、コミュニティが希望する場合は、喜んでマニュアル全体をロシア語に翻訳します。今のところ、記事の冒頭で約束されているtwitterのサンプルパーサーを提供します。
twitterからのメッセージのパーサーの例
require_once 'simple_html_dom.php';
メッセージ出力
for ($j = 0; $j < $maxpost; $j++) { echo '<div class="twitter_message">'; echo '<p class="twitter_text">' . $articles[$j]['text'] . '</p>'; echo '<p class="twitter_time">' . $articles[$j]['time'] . '</p>'; echo '</div>'; }
ご清聴ありがとうございました。 私はそれが知覚のために非常に難しいと簡単にうまくいかなかったことを願っています。
同様のライブラリ
htmlSQL -
Chesnovichに感謝
Zend_Dom_Query-ありがとう
phpQuery -
theRavelに感謝
QueryPath -
ZonD80に感謝
DomCrawler(Symfony) -ありがとう
CDom-著者への感謝
悪名高いXPath -
KAndyを思い出させて
くれてありがとうPS
Groove habrozhitelは、
同様の材料がすでに存在することを促し
ましたPPS
空き時間には、すべてのライブラリを収集し、使用のパフォーマンスと快適さに関する要約データをコンパイルしようとします。