如何获取页面的所有图像?
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"/>
元标记,然后它将使用该图像作为墙帖/状态的缩略图。
【讨论】:
以上是关于如何获取页面的所有图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PHP 从 Amazon.com 页面获取图像和数据?