PHP文章节选般的可读性

PHP文章节选般的可读性,php,web-scraping,Php,Web Scraping,我看过了,但它并不能真正满足我的需求。这个问题的答案是:从元描述标签中提取,第二个是为一篇你已经有了正文的文章生成摘录 我想做的是,像可读性一样,获取文章的前几句话。最好的方法是什么?HTML解析?这是我目前正在使用的,但这不是很可靠 function guessExcerpt($url) { $html = file_get_contents_curl($url); $doc = new DOMDocument(); @$doc->loadHTML($html)

我看过了,但它并不能真正满足我的需求。这个问题的答案是:从元描述标签中提取,第二个是为一篇你已经有了正文的文章生成摘录

我想做的是,像可读性一样,获取文章的前几句话。最好的方法是什么?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;
}
函数猜测摘录($url){
$html=file\u get\u contents\u curl($url);
$doc=新的DOMDocument();
@$doc->loadHTML($html);
$metas=$doc->getElementsByTagName('meta');
对于($i=0;$i<$metas->length;$i++)
{
$meta=$metas->item($i);
如果($meta->getAttribute('name')=='description')
$description=$meta->getAttribute('content');
}
返回$description;
}
函数文件\u get\u contents\u curl($url){
$ch=curl_init();
curl_setopt($ch,CURLOPT_头,0);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_超时,5);
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
$data=curl\u exec($ch);
卷曲关闭($ch);
返回$data;
}

这里有一个PHP可读性端口:。试试看。提取结果将类似于可读性(因为它实现了可读性的算法)


然后你可以使用
$content
中的一些句子作为摘录。

有人知道如何刮取相关的缩略图/图像吗?可读性正是我想要的。@Swivelgames您找到如何获取缩略图了吗?我想做点什么similar@andrewliu我用来获取缩略图的方法是多些代码。我使用了
preg\u match\u all
//I
并构建了一个包含所有图像的数组。通过解析上面示例中的
$url
,我能够通过确定baseurl将相对图像路径转换为绝对路径。然后,我提供一个带有绝对图像路径的数组,供用户选择。您可以使用一个简单的脚本创建缩略图,并将其保存在web服务器上以显示给用户,或者使用HTML进行缩放。发布一个新问题并将链接粘贴到这里,然后我可以给你具体的代码。@Swivelgames:你能用这个API从页面上获得相关的图像吗?@Programming\u crazy不,我没有。为了检索它,我不得不写一点额外的代码(在上面的注释中进行了抽象)。不过,我使用的解决方案非常有效:)如果您对如何使用可读性检索所有相关图像感兴趣,请发布新问题并使用问题的URL进行评论。然后我可以提供一个很好的答案。我知道我之前说过,但请不要使用正则表达式来检索图像。这是一个非常非常糟糕的做法。你也可以看看
require 'lib/Readability.inc.php';

$html = file_get_contents_curl($url);

$Readability     = new Readability($html, $html_input_charset); // default charset is utf-8
$ReadabilityData = $Readability->getContent();

$title   = $ReadabilityData['title'];
$content = $ReadabilityData['content'];