我有一个项目,用户提交许多链接到外部网站,我需要解析这些提交的链接的HTML并从页面中提取基本信息,就像Digg和Facebook在提交链接时所做的那样。
我想找回:
h1、h2、p等)div、p等.)H 110主图像H 211G 212
我的主要问题是,似乎有太多的选择在这里探索,我变得有点困惑,坐得最少。到目前为止,我看过的许多解决方案似乎是不充分的,或者是巨大的过火。
发布于 2011-04-24 05:52:53
您可以选择服务器端语言来完成此操作。
例如,使用PHP,您可以使用get_meta_tags()作为元标记..。
$meta = get_meta_tags('http://google.com');您可以使用DOMDocument获取title元素(有些人可能会认为如果需要title元素,也可以使用DOMDocument获取元标记)。
$dom = new DOMDocument;
$dom->loadHTML('http://google.com');
$title = $dom
->getElementsByTagName('head')
->item(0)
->getElementsByTagName('title')
->item(0)
->nodeValue;至于获取主图像,这需要某种程度的提取什么可以被认为是主要的图像。您可以获取所有的img元素,并在页面上查找最大的元素。
$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);https://stackoverflow.com/questions/5768890
复制相似问题