如何使用node.js和javascript来模仿Facebook的“链接共享”function

所以我想模仿的是Facebook提供的链接共享function。 您只需inputURL,然后FB自动从目标网站获取图像,标题和简短描述。 如何用javascript和node.js和其他可能需要的JavaScript库编程呢? 我find了一个使用PHP的fopen函数的例子,但是我不想在这个项目中包含PHP。

我正在问一个webscraping的例子吗? 我需要做的就是从目标网站的meta标签中获取数据,然后使用CSSselect器获取图片标签?

如果有人能指出我正确的方向,那将不胜感激。 谢谢!

看看这个post。 它讨论用node.js进行刮擦。 在这里你有很多以前的信息与JavaScript和jQuery的刮。

也就是说,Facebook实际上并不知道标题,描述和预览是什么,它们(至less大部分时间)都是从网站中出现的元标记获取信息,这些元标记是想让fb用户更容易访问的。

也许你可以利用现有的元数据来提取标题,描述和img预览。 有关可用元数据的文档是HERE 。

是的,需要networking抓取,这是很容易的部分。 困难的部分是寻找标题和相关文本和图像的通用algorithm。

如何刮

你可以使用jsdom在你的服务器上下载和创build一个DOM结构,并在你的服务器上使用jquery。 你可以在blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejsfind一个很好的教程,就像上面的@generalhenry所build议的那样。

什么刮

我想一个很好的方法来find标题将是: –

var h; for(var i=6; i<=1; i++) if(h = $('h'+i).first()){ break; } 

现在h将有标题或undefined如果失败。 替代scheme可以简单地获取页面的title标签。 🙂

至于图像。 列出该页面上的所有或前几张相当大的图像,即过滤出用于button,箭头等的精灵。

在获取远程数据时,请确保ProcessExternalResources标志已closures。 这将确保广告的脚本标记不会污染抓取的页面。

是的,相关的文本将在h后的一些标签。