7

重複の可能性:
PHPでのHTMLスクレイピング

時々PHPを使用して更新される特定のテキスト文字列をWebページから取得する方法があるかどうかを知りたいです。「インターネット全体」を検索しましたが、何も見つかりませんでした。preg_matchでそれができるのを見ただけですが、使い方がわかりませんでした。

Webページにこれが含まれていると想像してください。

<div name="changeable_text">**GET THIS TEXT**</div>

file_get_contentsページを変数に入れていた後、PHPを使用してそれを行うにはどうすればよいですか?

前もって感謝します :)

4

4 に答える 4

15

DOMDocument次のように使用できます。

$html = file_get_contents( $url);

libxml_use_internal_errors( true);
$doc = new DOMDocument;
$doc->loadHTML( $html);
$xpath = new DOMXpath( $doc);

// A name attribute on a <div>???
$node = $xpath->query( '//div[@name="changeable_text"]')->item( 0);

echo $node->textContent; // This will print **GET THIS TEXT**
于 2012-07-19T19:12:24.927 に答える
2

あなたは見てみたいかもしれません

シンプルなHTMLDOMライブラリ

ここに小さなチュートリアルがあります: http ://www.developertutorials.com/tutorials/php/easy-screen-scraping-in-php-simple-html-dom-library-simplehtmldom-398/

これはスクリーンスクレイピングAPIであり、HTMLをフィードして、jQueryの類似言語でその一部を取得できます。

于 2012-07-19T19:11:24.547 に答える
0

あなたはデータスクレイピングについて話している:人間が読める出力からデータを抽出する行為。あなたの場合、これは<div>タグの間にあるものです。PHP DOMの拡張機能を使用して、必要なタグにアクセスし、データを抽出します。GoogleはPHPDOMチュートリアルを検索します。

于 2012-07-19T19:31:54.967 に答える
0
$delements= file_get_html('url will go here'); 

foreach($elements->find('element') as $ele) {

    //traverse according to your preferences

} 

//return or output
于 2012-07-19T20:29:48.313 に答える