phpQuery を使用して Web コンテンツを簡単に収集する
phpQuery は、PHP に基づくサーバー側のオープン ソース プロジェクトであり、PHP 開発者がニュース Web サイトのヘッドライン情報を取得するなど、DOM ドキュメント コンテンツを簡単に処理できるようにします。さらに興味深いのは、jQuery の考え方を使用していることです。jQuery を使用するのと同じようにページのコンテンツを処理して、必要なページ情報を取得できます。
まず例を見てみましょう。コードは次のとおりです:
<span style="color: #0000ff;">include</span> 'phpQuery/phpQuery.php'<span style="color: #000000;">; phpQuery</span>::newDocumentFile('http://news.sina.com.cn/china'<span style="color: #000000;">); </span><span style="color: #0000ff;">echo</span> pq(".blkTop h1:eq(0)")->html();
シンプル 3 行のコードで見出しの内容を取得できます。まず、プログラムに phpQuery.php コア プログラムを組み込み、次に対象の Web ページを呼び出して読み取り、最後に対応するタグの下にコンテンツを出力します。
pq() は、jQuery の $() と同様に、基本的に phpQuery で使用できる強力なメソッドです。「.」を「->」に変更するだけです。上の例のように、pq(".blkTop h1:eq(0)") は、ページ上の class 属性が blkTop である DIV 要素をキャプチャし、DIV 内の最初の h1 タグを見つけて、html() メソッドを使用してh1 タグを取得する コンテンツ (html タグ付き) は取得したい見出し情報です。 text() メソッドを使用すると、見出しのテキスト コンテンツのみが取得されます。もちろん、phpQuery をうまく使用するには、ドキュメント内で対応するコンテンツを持つノードを見つけることが重要です。
helloweba.com Web サイトのブログ リストを取得する別の例を見てみましょう。コードを参照してください:
<span style="color: #0000ff;">include</span> 'phpQuery/phpQuery.php'<span style="color: #000000;">; phpQuery</span>::newDocumentFile('http://www.helloweba.com/blog.html'<span style="color: #000000;">); </span><span style="color: #800080;">$artlist</span> = pq(".blog_li"<span style="color: #000000;">); </span><span style="color: #0000ff;">foreach</span>(<span style="color: #800080;">$artlist</span> <span style="color: #0000ff;">as</span> <span style="color: #800080;">$li</span><span style="color: #000000;">){ </span><span style="color: #0000ff;">echo</span> pq(<span style="color: #800080;">$li</span>)->find('h2')->html().""<span style="color: #000000;">; } </span>
リスト内の DIV をループして、記事のタイトルを見つけて出力するだけです。とても簡単です。
次のような test.xml ドキュメントがあるとします:
<?xml version="1.0" encoding="utf-8"?> <root> <contact> <name>张三</name> <age>22</age> </contact> <contact> <name>王五</name> <age>18</age> </contact> </root>
次に、Zhang の名前を取得したいとします。 San 連絡先の年齢、コードは次のとおりです:
<span style="color: #0000ff;">include</span> 'phpQuery/phpQuery.php'<span style="color: #000000;">; phpQuery</span>::newDocumentFile('test.xml'<span style="color: #000000;">); </span><span style="color: #0000ff;">echo</span> pq('contact > age:eq(0)');
結果出力: 22
jQuery と同様に、ドキュメント ノードを正確に検索し、コンテンツを出力しますノードの下で XML ドキュメントを解析するのは非常に簡単です。 phpQuery を使用すると、Web サイトのコンテンツを収集するために通常のアルゴリズムやコンテンツの置換などの面倒なコードを使用する必要がなくなります。
プロジェクト公式 Web サイトのアドレス: http://code.google.com/p/phpquery/