質問

CSSセレクターでXHTMLドキュメントを照会できるPHPクラス/ライブラリはありますか?何らかの方法でCSSセレクターを使用できる場合は、非常に簡単にアクセスできるデータのページをスクレイピングする必要があります(jQueryが私を台無しにしました!)。アイデアはありますか?

役に立ちましたか?

解決

さらにググリングした後(最初の結果はあまり役に立たなかった)、実際にはこのためのZend Frameworkライブラリと他のいくつかのライブラリがあるようです:

他のヒント

XPathはXML(およびXHTML)ノードにアクセスするためのかなり標準的な方法であり、CSSよりもはるかに高い精度を提供します。

すばらしいのはsymfony 2のコンポーネントです CssSelector \ Parser ­はじめに 。 CSSセレクターをXPath式に変換します。見てください=)

ソースコード

jQuery ユーザーにとって最も興味深いのは、 jQueryのPHPへのポート、つまり< strong> phpQuery 。ライブラリのほぼすべてのセクションが移植されています。さらに、 WebBrowser プラグインが含まれています。このプラグインは、サイト全体のパス/プロセスをWebスクレイピングするために使用できます(ログイン後に利用可能なデータにアクセスするなど)。サーバー上のWebブラウザーをシミュレートするだけです(イベントとCookieも)。最新バージョンでは、XML 名前空間およびCSS3 &quot; |&quot; セレクターが実験的にサポートされています。

PHP Query Lite を使用することになりました。これは非常にシンプルで、必要なものがすべて揃っています。

ドキュメントの解析には、 DOM を使用します。タグ名(この例では&quot; div&quot;)を知っていれば、これで問題を簡単に解決できます:

 $doc = new DOMDocument();
 $doc->loadHTML($html);

 $elements = $doc->getElementsByTagName("div");
 foreach ($elements as $e){
  if ($e->getAttribute("class")!="someclass") continue;

  //its a div.classname
 }

DOMでドキュメントのすべての要素を一度に取得できるかどうかわからない...ツリートラバーサルが必要になる場合があります。

Mootools CSSセレクターエンジン http://selectors.svn.exyks.org/に基づいて、私のものを書きました。 。 simplexml拡張機能に依存しています(つまり、読み取り専用です)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top