如何获取页面的所有图像?

Posted

技术标签:

【中文标题】如何获取页面的所有图像?【英文标题】:how to fetch all images of a page? 【发布时间】:2011-07-17 08:54:19 【问题描述】:

我需要两个 php 中的工具或脚本....

首先,我需要一个工具/php scriot,它可以获取页面给定链接的所有图像,以便我可以将这些图像存储在我的数据库中,以便稍后将它们显示为链接的缩略图。

其次,我需要一个工具/php 脚本,它可以获取页面给定链接的标题、描述和快照缩略图。

我该怎么做? 任何工具或任何php脚本??

编辑: 当您尝试在任何人的墙上发布“链接”时,我需要类似于 Facebook 的东西。

【问题讨论】:

我尝试解析这些东西,但我猜这不值得,因为我只需要特定的内容,而且每个页面都有不同的结构,所以这就是为什么.. 【参考方案1】:

也许这个工具就是你要找的东西:http://simplehtmldom.sourceforge.net/。 您在快速入门中有一个示例来获取所有图像。

编辑: 如果需要,这里有一个教程:http://net.tutsplus.com/tutorials/php/html-parsing-and-screen-scraping-with-the-simple-html-dom-library/

另一种方法是使用 DOM 和 PHP 中包含的类(文档:http://fr2.php.net/manual/en/book.dom.php)。要获取页面的所有meta 标签,您可以这样做:

<?php
$doc = new DOMDocument();
$doc->loadHTML('you_page.php');

$metas = $doc->getElementsByTagName('meta');

foreach ($metas as $meta)

    //To get a specific attribute
    echo $meta->getAttribute('your_attribute');

【讨论】:

【参考方案2】:

您可以顺应当前趋势并使用 Node:Scrape web pages in real time with Node.js

虽然如果您使用的是 Windows 和 Unix,您可能会感到害怕,但它可能会带来更多的麻烦。

贾斯汀

【讨论】:

【参考方案3】:

++ 用于 SimpleHtmlDom

$ret = $html->find('a, img'); 

并获得标题等,您可以使用相同的 参考手册,

http://simplehtmldom.sourceforge.net/manual.htm

facebook 不显示网站的屏幕截图,而是显示它认为相关的图像。他们还遵循opengraph 协议,

例如,如果您的网站有

<meta property="og:image" content="http://ia.media-imdb.com/rock.jpg"/>

元标记,然后它将使用该图像作为墙帖/状态的缩略图。

【讨论】:

以上是关于如何获取页面的所有图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 og:image 以便从页面获取图像?

如何在ios中从手机中获取所有图像

如何使用 PHP 从 Amazon.com 页面获取图像和数据?

如何获取图像的区域并均衡所有图像

facebook graph api - 在页面上获取用户发布的图像

如何从数据库中获取所有图像