首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >聪明地抓取第一段/开始文本

聪明地抓取第一段/开始文本
EN

Stack Overflow用户
提问于 2011-01-11 15:09:07
回答 3查看 3K关注 0票数 3

我想有一个脚本,我可以输入一个URL,它将智能地抓取文章的第一段.除了从<p>标记中提取文本之外,我不知道从哪里开始。你知道关于如何做这类事情的任何提示/教程吗?

更新

为了做进一步的澄清,我正在构建我的网站的一个部分,用户可以在Facebook上提交链接,它会从他们的网站上获取一张图片以及与链接一起的文本。我正在使用PHP,并试图确定最佳的方法来做到这一点。

我说“聪明”是因为我想在页面上找到重要的内容,不仅是第一段,而且是最重要的内容的第一段。

EN

回答 3

Stack Overflow用户

发布于 2011-01-11 16:01:30

如果您想要获取的页面是外页,甚至是本地的,但是您事先不知道它的结构,我想说最好的方法是使用php DOM函数

代码语言:javascript
复制
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;
}
票数 2
EN

Stack Overflow用户

发布于 2011-01-11 17:26:30

简短的回答:你不能。

为了让PHP脚本“智能”地从页面中获取“最重要”的内容,脚本必须理解页面上的内容。PHP不是自然语言处理器,这也不是一个微不足道的研究领域。可能有一些用于PHP的NLP工具包,但我仍然怀疑这样做是否容易。

一个可以通过合理的努力实现的解决方案是使用HTML解析器获取整个页面,然后查找blog引擎中常见的具有特定类名或in的元素。您还可以解析hAtom微格式。或者,您可以在文档中查找Meta标记和更明确定义的信息。

票数 1
EN

Stack Overflow用户

发布于 2011-01-12 13:54:27

不久前,我写了一个Python脚本来提取网页的主要文章内容。它使用启发式方法扫描文档中的所有文本节点,并在相似的深度将节点分组,然后假设最大的分组是主要项目。

当然,这种方法也有其局限性,没有一种方法能在100%的网页上工作。这只是一种方法,还有很多其他的方法可以实现。您也可能希望在这个主题上查看类似的过去的问题

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4659057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档