繁体   English   中英

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

[英]How to mimic Facebook's “link share” functionality using node.js and javascript

所以我想模仿的是Facebook提供的链接共享功能。 您只需输入URL,然后FB就会自动从目标网站获取图像,标题和简短描述。 如何用node.js和其他可能需要的javascript库在javascript中对此进行编程? 我找到了一个使用PHP的fopen函数的示例,但我不想在该项目中包括PHP。

我要问的是网络抓取的示例吗? 我需要做的就是从目标网站的meta标签内部检索数据,然后再使用CSS选择器获取图像标签吗?

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

这个帖子。 它讨论了如何使用node.js进行抓取。 在这里,您有很多有关使用javascript和jquery进行抓取的先前信息。

就是说,Facebook实际上并没有猜测标题,描述和预览是什么,它们(至少在大多数情况下)是从想要让fb用户更容易访问的网站中存在的meta标签获取该信息的。

也许您可以利用现有的元数据提取标题,描述和img预览。 有关可用元数据的文档在这里

是的,需要进行网络抓取,这很容易。 困难的部分是用于查找标题以及相关文本和图像的通用算法。

如何刮

您可以使用jsdom在服务器中下载并创建DOM结构,然后在服务器上使用jquery对其进行抓取。 如上面@generalhenry所建议,您可以在blog.nodejitsu.com/jsdom-jquery-in-5-lines-on-nodejs上找到一个很好的教程。

刮什么

我想找到标题的好方法是:

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

现在,如果h失败,它将具有标题或undefined 替代方法可能只是获取页面的title标签。 :)

至于图像。 列出该页面上相当大的所有或前几个图像,例如,以滤除用于按钮,箭头等的精灵。

在获取远程数据时,请确保已关闭ProcessExternalResources标志。 这样可以确保广告的脚本代码不会污染获取的页面。

是的,相关文本将在h之后的某些标记中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM