0

私がやろうとしているのは、(著作権のない) サイトからテキストを抽出することです。特定の div 内のテキストのみが必要です。divが「foo」と呼ばれているとしましょう。各ページには約20個の「foo div」があり、これらのそれぞれからテキストを抽出して、ページまたは外部のテキストに出力したいと思いますが、問題ではありません。

一度に複数のページを実行すると、間違いなくボーナスになります.

このサイトの質問を読みました Web サイトの複数のページで発生する DIV からテキストを抽出し、.txt に出力しますか?

同一ではないにしても、私が求めているものと似ているようです。ただし、これが 1 ページ内の同じ名前の複数の div から抽出されるかどうかはわかりません。

すべてのコードをコピーして新しい .php ファイルに貼り付けようとしましたが、うまくいきませんでした。実行時にエラーメッセージが表示されました:(

若い頃は HTML を数年間やっていましたが、PHP のスキルは非常に基本的なものです。

また、クロールなどにスクリプトは必要ありません。情報をスクレイピングするだけです。複数の URL のオプションがある場合は、手動で入力したいと思います。

ありがとう

4

2 に答える 2

0

これらのリンクは、PHP での HTML DOM PARSING について役立つと思います

クイック スタート
HTML DOM オブジェクトの作成方法
HTML要素を見つける方法は?
HTML 要素の属性にアクセスする方法は?
DOM ツリーをトラバースする方法は?
DOM オブジェクトのコンテンツをダンプするには?
解析動作をカスタマイズするには?
API リファレンス
に関するよくある質問

また、サンプル サイト( www.slashdot.org )からのスクレイピングの例を次に示します。

// Create DOM from URL
$html = file_get_html('http://slashdot.org/');

// Find all article blocks
foreach($html->find('div.article') as $article) {
    $item['title']     = $article->find('div.title', 0)->plaintext;
    $item['intro']    = $article->find('div.intro', 0)->plaintext;
    $item['details'] = $article->find('div.details', 0)->plaintext;
    $articles[] = $item;
}

print_r($articles);
于 2013-01-23T10:22:39.373 に答える
0

どういう意味foo divですか?namediv の属性値が であることを意味する場合は、 SIMPLE HTML DOM PARSERfooを使用して、次のようなクエリでこれを簡単に取得できます。

$ret = $html->find('div[name=foo]');

その後、これらの結果を反復処理して、適切と思われる場所に保存することができます。スクリプトを手動で実行している場合は、これらの結果をファイルに直接書き込むことをお勧めします。

上記の単純な dom パーサー リンクでは、Web サイトをスクレイピングする方法を段階的に説明しています。

私たちがあなたを助けるためには、あなたのコードを投稿するのが最善であり、あなたが受け取ることができるより良い答えが得られるより多くの情報を提供するほど正確なエラーです. SO が Web ページを解析するスクリプトを作成することを期待している場合は、おそらくがっかりするでしょう。

于 2012-06-14T17:24:58.310 に答える