我想有一个脚本,我可以输入一个URL,它将智能地抓取文章的第一段.除了从<p>标记中提取文本之外,我不知道从哪里开始。你知道关于如何做这类事情的任何提示/教程吗?
更新
为了做进一步的澄清,我正在构建我的网站的一个部分,用户可以在Facebook上提交链接,它会从他们的网站上获取一张图片以及与链接一起的文本。我正在使用PHP,并试图确定最佳的方法来做到这一点。
我说“聪明”是因为我想在页面上找到重要的内容,不仅是第一段,而且是最重要的内容的第一段。
发布于 2011-01-11 16:01:30
如果您想要获取的页面是外页,甚至是本地的,但是您事先不知道它的结构,我想说最好的方法是使用php DOM函数。
function get_first_paragraph($url)
{
$page = file_get_contents($url);
$doc = new DOMDocument();
$doc->loadHTML($page);
/* Gets all the paragraphs */
$p = $doc->getElementsByTagName('p');
/* extracts the first one */
$p = $p->items(0);
/* returns the paragraph's content */
return $p->textContent;
}发布于 2011-01-11 17:26:30
简短的回答:你不能。
为了让PHP脚本“智能”地从页面中获取“最重要”的内容,脚本必须理解页面上的内容。PHP不是自然语言处理器,这也不是一个微不足道的研究领域。可能有一些用于PHP的NLP工具包,但我仍然怀疑这样做是否容易。
一个可以通过合理的努力实现的解决方案是使用HTML解析器获取整个页面,然后查找blog引擎中常见的具有特定类名或in的元素。您还可以解析hAtom微格式。或者,您可以在文档中查找Meta标记和更明确定义的信息。
https://stackoverflow.com/questions/4659057
复制相似问题