Фрагмент статьи PHP Scrape, такой как читабельность

Я видел этот вопрос , но он не совсем соответствует тому, что я ищу. Ответы на этот вопрос были либо :подняты из тега метаописания, а вторым было создание выдержки из статьи, из которой у вас уже есть тело.

Что я хочу сделать, так это получить первые несколько предложений статьи , как это делает Readability. Какой не лучший метод для этого? Разбор HTML? Вот то, что я сейчас использую, но это не очень надежно.

function guessExcerpt($url) {
    $html = file_get_contents_curl($url);

    $doc = new DOMDocument();
    @$doc->loadHTML($html);

    $metas = $doc->getElementsByTagName('meta');

    for ($i = 0; $i < $metas->length; $i++)
    {
        $meta = $metas->item($i);
        if($meta->getAttribute('name') == 'description')
            $description = $meta->getAttribute('content');

    }

    return $description;
}

function file_get_contents_curl($url) {
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

6
задан Community 23 May 2017 в 11:45
поделиться