Php 如何像Facebook那样从网页中提取图像?

Php 如何像Facebook那样从网页中提取图像?,php,javascript,ajax,web-crawler,Php,Javascript,Ajax,Web Crawler,如果我在墙上插入如下链接: 然后facebook提取文章中的图像,而不是网页中的第一个图像(例如,不是图像徽标或其他小图像) facebook是如何做到这一点的?我可以想象facebook爬虫可以识别实际的内容部分,并从中选择图像。类似的功能也被使用。使用的软件是Wordpress,这可能会有所帮助,Wordpress是最流行的博客软件。Facebook为该软件添加特定支持是一个快速的胜利。Hm,如果没有更多关于他们使用的算法的信息,这是不可能的 但是,从页面的源代码中可以看出,虽然Bossi

如果我在墙上插入如下链接:

然后facebook提取文章中的图像,而不是网页中的第一个图像(例如,不是图像徽标或其他小图像)


facebook是如何做到这一点的?

我可以想象facebook爬虫可以识别实际的内容部分,并从中选择图像。类似的功能也被使用。使用的软件是Wordpress,这可能会有所帮助,Wordpress是最流行的博客软件。Facebook为该软件添加特定支持是一个快速的胜利。

Hm,如果没有更多关于他们使用的算法的信息,这是不可能的

但是,从页面的源代码中可以看出,虽然Bossi的图像不是页面中的第一个图像,但它是divs“page_content”和“post_content”中的第一个图像。也许Facebooks知道博客系统(本例中为Wordpress)使用的HTML ID,并使用这些ID查找第一个图像,该图像实际上是页面内容的一部分


这实际上是一个好主意,本质上是“语义网”的一个实现。…

我猜facebook已经建立了一些算法,用于区分html页面中的实际内容和其他数据。当查看您提供的页面时,非常容易,因为包含页面内容的html元素具有id=“page\u content”,这是不言自明的

正如其他人所说,我们不知道Facebook如何决定在没有任何相关元数据的情况下选择什么(尽管Sleske的猜测似乎合理;我也猜他们看的是第一张大图),但你可以通过走正确的路线,简单地给Facebook(和类似的服务)来避免这种情况通过使用标签添加关于页面的元数据,例如,如果您想指定用于类似facebook的特定图像,您应该在头标签中包含以下内容:

<meta property="og:image" content="<your image URL>" />

LinkedIn、Google+和许多其他公司也使用OGP


如果你在Wordpress中,你可以用控制这些标签。其他系统可以手动或通过自己的插件来完成。

我必须说,这是一个好看的页面!这是有道理的,因为当我从自定义CMS发布到Facebook时,它会拾取所有图像,包括徽标。