问题描述
||
所以我想模仿的是Facebook提供的链接共享功能。您只需输入URL,然后FB自动从目标网站获取图像,标题和简短描述。如何用node.js和其他可能需要的javascript在javascript中对此程序进行编程?我找到了一个使用PHP的fopen函数的示例,但我宁愿不将PHP包含在该项目中。
我要问的是网络抓取示例吗?我需要做的就是从目标网站的Meta标签内部检索数据,然后再使用CSS选择器获取图像标签吗?
如果有人可以指出正确的方向,那将不胜感激。谢谢!
解决方法
看这个帖子。它讨论了如何使用node.js进行抓取。
这里您有很多关于使用javascript和jquery进行抓取的先前信息。
就是说,Facebook实际上并没有猜测标题,描述和预览是什么,它们(至少在大多数情况下)是从网站中存在的元标记中获取该信息的,这些元标记希望让fb用户更易于访问。
也许您可以利用现有的元数据提取标题,描述和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
将带有标题,或者fails2ѭ将带有标题。替代方法可能只是获取页面的title
标签。 :)
至于图像。列出该页面上相当大的所有或前几个图像,例如,以滤除用于按钮,箭头等的图片。
在获取远程数据时,请确保“ 4”标志已关闭。这样可以确保广告的脚本代码不会污染获取的页面。
是的,相关文本将在h
之后的某些标记中。