Вы можете искать большие части документа, которые имеют меньшую разметку и меньше вертикальных пробелов. Загрузите исходный код страницы и удалите любую разметку, используя strip_tags()
. Затем вы можете искать, скажем, пять последовательных предложений, используя регулярные выражения.
Вот пример сценария. Он использует класс, который не включен (абстракция функций 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";
?>
Это печатает:
Доллар вырос против корзины из шести основных валют на фоне спекуляций о том, скажет ли на этой неделе председатель Федеральной резервной системы Бен С. Бернанке, что центральный банк готов предоставить больше стимулов для экономики. На этой неделе центральные банкиры встречаются в Джексон-Хоуле, штат Вайоминг, чтобы обсудить восстановление в США.
У вас все еще могут быть проблемы с сайтами, которые много размечают свой контент. Возможно, вы захотите сделать регулярное выражение более мягким, особенно в отношении пробелов.
Регулярное выражение немного запутанно, но вы можете настроить его или написать свое собственное.