マークアップと垂直方向の空白が少ないドキュメントの大部分を探すことができます。ページのソースをダウンロードし、 を使用してマークアップを取り除きstrip_tags()
ます。次に、正規表現を使用して、たとえば 5 つの連続する文を検索できます。
スクリプトの例を次に示します。含まれていないクラス(curl_multi関数の抽象化)を使用していますが、そのクラスはあなたの質問にはあまり関係ありません。
<?php
require_once("./../MultipleRequester.php");
$requester = new MultipleRequester();
$requester->addGetRequest( 'test', 'http://www.businessweek.com/news/2011-08-24/gold-tumbles-most-since-march-2008-as-demand-for-haven-wanes.html');
$requester->execute();
$content = $requester->getContent('test');
$plainText = strip_tags( $content );
$search = preg_match('/(\h{0,2}\v{0,2}\h{0,2}[A-Z]{1}[A-z0-9 ,\'")(.$]{10,1000}\.){2,5}/', $plainText, $matches);
if( $search )
print trim($matches[0]);
else
print "Could not extract anything.";
print "\n\n";
?>
これは以下を出力します:
米連邦準備制度理事会(FRB)のベン・S・バーナンキ議長が今週、中央銀行は経済にさらなる刺激を与える用意があると発言するかどうかについての憶測の中で、ドルは6つの主要通貨のバスケットに対して上昇した。中央銀行は今週、ワイオミング州ジャクソンホールで会合を開き、米国の景気回復に対処します。
コンテンツを頻繁にマークアップするサイトでは、まだ問題が発生する可能性があります。特に空白に対して、正規表現をより寛大にしたい場合があります。
正規表現は少し面倒ですが、調整したり、独自のものを作成したりできます。