首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从html中提取基本信息?

从html中提取基本信息?
EN

Stack Overflow用户
提问于 2011-04-24 05:48:33
回答 1查看 816关注 0票数 1

我有一个项目,用户提交许多链接到外部网站,我需要解析这些提交的链接的HTML并从页面中提取基本信息,就像Digg和Facebook在提交链接时所做的那样。

我想找回:

  1. 主标题或标题(可以是标题、h1h2p等)
  2. 说明文本(可以在divp等.)

H 110主图像H 211G 212

我的主要问题是,似乎有太多的选择在这里探索,我变得有点困惑,坐得最少。到目前为止,我看过的许多解决方案似乎是不充分的,或者是巨大的过火。

EN

Stack Overflow用户

发布于 2011-04-24 05:52:53

您可以选择服务器端语言来完成此操作。

例如,使用PHP,您可以使用get_meta_tags()作为元标记..。

代码语言:javascript
复制
$meta = get_meta_tags('http://google.com');

您可以使用DOMDocument获取title元素(有些人可能会认为如果需要title元素,也可以使用DOMDocument获取元标记)。

代码语言:javascript
复制
$dom = new DOMDocument;

$dom->loadHTML('http://google.com');

$title = $dom
           ->getElementsByTagName('head')
           ->item(0)
           ->getElementsByTagName('title')
           ->item(0)
           ->nodeValue;

至于获取主图像,这需要某种程度的提取什么可以被认为是主要的图像。您可以获取所有的img元素,并在页面上查找最大的元素。

代码语言:javascript
复制
$dom = new DOMDocument;

$dom->loadHTML('http://google.com');

$imgs = $dom
         ->getElementsByTagName('body')
         ->item(0)
         ->getElementsByTagName('img');

$imageSizes = array();

foreach($imgs as $img) {

  if ( ! $img->hasAttribute('src')) {
     continue;
  }

  $src = $img->getAttribute('src');

  // May need to prepend relative path
  // Assuming Apache, http and port 80

  $relativePath = rtrim($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'], '/') . '/';

  if (substr($src, 0, strlen($relativePath) !== $relativePath) {
     $src = $relativePath . $src;
  }

  $imageInfo = getimageinfo($src);

  if ( ! $imageInfo) {
     continue;
  }    

  list($width, $height) = $imageInfo;

  $imageSizes[$width * $height] = $img;

}

$mainImage = end($imageSizes);
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5768890

复制
相关文章

相似问题

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