从网页获取信息(标题,图片,头等)

vto*_*ola 4 javascript jquery facebook

在Facebook中,当您向墙壁添加链接时,它会获得标题,图片和部分文本.我在其他可以添加链接的网站上看到过这种行为,它是如何工作的?它有名字吗?有没有实现它的javascript/jQuery扩展?

怎么可能facebook去另一个网站并获取html,据说,禁止进行跨站点ajax调用?

谢谢.

Tom*_*len 6

基本方法论

当触发获取事件时(例如在Facebook上粘贴URL),您可以使用AJAX请求url*,然后根据需要解析返回的数据.

解析数据非常棘手,因为很多网站都有不同的标准.在标题标签之间获取文本是一个良好的开端,并且可能搜索META描述(但随着搜索引擎演变为更复杂的基于内容的搜索,这些描述越来越少).

如果做不到这一点,你需要一些方法来找到页面上最重要的文字,并获取前100个字符左右,以及在页面上找到最突出的图片.

这不是一项微不足道的任务,尝试从这样一个流畅且对比鲜明的数据集(一般返回的网页)中导出语义非常复杂.例如,您可能会在页面上找到最大的图像,这是一个良好的开端,但您怎么知道它不是背景图像?你怎么知道最能描述该页面的图像?

祝好运!

*如果您不能直接使用AJAX第三方URL,可以通过请求本地服务器上的页面来完成此操作,该页面使用某种HTTP请求获取远程页面服务器端.

一些额外的想法

如果您从远程服务器获取图像并在您的网站上"热链接"它,当您尝试显示此图像时,许多网站似乎有时会出现"反链接"替换图像,因此可能需要比较服务器中请求的图像带有实际提取图像的页面,这样您就不会出现任何令人讨厌的事故.

头部中的很多标题标签都是通用的,不具有描述性,如果有一个可用的文章标题(假设文章类型网站)会更好,因为它会更具描述性,但发现这很难!

如果你真的很聪明,你可能会以谷歌为例(尽管检查他们的T&C).如果用户请求某个网址,您可以在后台谷歌搜索它,并使用返回的谷歌描述性文字作为返回文本.如果谷歌显着改变了他们的标记虽然这可能会很快破裂!