2012-03-01 7 views
0

可能性の重複:特定の情報のためのウェブページをこするとき、あなたの意見では何
How to parse and process HTML with PHP?のXPath、簡単なHTMLのDOMや正規表現がスクレーピングWebページ

は/最善のアプローチを体験?

私は指定されたWebページから情報の特定のフィールドを自動的に破棄するシステム(PHP/JS/MySQL)を構築しています。このシステムでは、(半)手動でそのWebサイトの最初のページを擦った後、ロジックがdbに移動し、そのフォーマットの他のページをWebサイトで削り取る機能が必要です。

HTML DOM(タグ名+クラス+ ID)とXPathをすばやく見つけて保存し、いくつかのフィルタルールを追加できます(クリーンHTML、最初のタグで区切り、特定の単語を削除...)

私の質問(もう一度:))は、ページを適切に掻き取るためにこのオートメーションで使用するのに最適な方法は何ですか?

例:

シンプルなHTMLのDOM:http://simplehtmldom.sourceforge.net/
のXPath:http://docs.jquery.com/DOM/Traversing/Selectors#XPath_Selectors
正規表現....

他の提案が

UPDATE歓迎されている:私は、XPathを使用しています、単純なHTML DOMと正規表現。 特定のWebサイトをスクラップする際に、簡単なコンフィギュレータ(スクレイピングルールの設定に使用されるインターフェイス)を自動化して作成するために、Simple HTML DOMが最適です。残念ながら、XPathは90%のケースでは有用ではありません。単純HMTL DOMは大成功を収めたケースの少なくとも50%で働いています)

最近追加された正規表現のコンポーネントでは、彼らは非常によく働いています(場合は少なくとも80%)。

+1

*ベスト*は建設的ではなく、議論を作成します。これはSO上では望ましくない。 – Gordon

答えて

0

これは、スクラップしようとしているページによって異なります。適切な形式(XHTMLやHTML5に適切な終了タグが付いている)の場合は、xPathを使用して構築することができます。しかし、特定のID、DiVなどの要素を検索して文字列を切り取るのがベストな(より難しいアプローチの)ケースが数多くありました。