微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

livefyre评论获取

前情提要:

前几次面见教授的时候就和教授说,“我发现好多新闻网站的评论都是使用livefyre,但是它有一段代码被加密了,我没有办法取得其中的评论。”

教授倒是很好说话的,只让我把他们列出来,然后放在一边就好了。翻译过来的意思就是“没有关系,你把他们找出来列成一个表,以后还有学生想做这个课题我就丢给他做。”

之后我又发现Wall Street Journal的新闻评论可以通过增加“/tag/comments”就可以得到,特别开心。谁知道今天在做开发的时候才发现,根本不是那么一回事啊。。。

之前从首页链进去的网站实际上是"Blog WSJ"这还有区别!!!!而从google news进去的新闻的评论一样是livefyre...

于是开始认真的研究在监控中可以看到的respond json page里面那一长串的东西究竟是什么。

Example:

页面是:http://www.wsj.com/articles/how-300-emails-led-to-a-summer-job-on-wall-street-1427932335

点击页面中的评论之后,给出的返回XHR是: http://bootstrap.wsj.fyre.co/bs3/v3.1/wsj.fyre.co/357384/U0IxMjQ5ODg4NTAwMzMwMjg3NDM0MjQwNDU4MDU1NDI4MDEzODM1MDYxOA==/init

关于我说的不知道是什么的就是U0IxMjQ5ODg4NTAwMzMwMjg3NDM0MjQwNDU4MDU1NDI4MDEzODM1MDYxOA ☜这个东西

其实之前也查过,到处找也不能找到它到底来自哪里。


今天去拜读了一下Livefyre的官方说明。以后查资料真的要查英文不能查中文。。。


其中有一段是这样的

=====================================分割线=========================================================================================

Init

The init call is used to gather initial Collection Metadata and to discover where Collection content can be requested from. The init call will return an error if the collection was not already created via the create endpoint.

GET http://bootstrap.{network}/bs3/{network}/{site_id}/{b64url_articleId}/init
Path parameters
  • network (String,required) - Your Livefyre Network
  • site_id (Int,required) - The Site ID of the Site you want to create a collection in
  • b64url_articleId (String,required) - Generated by applying the base64url algorithm to the Article ID of the desired Collection.

=====================================分割线=========================================================================================


大致是告诉你在返回的网页地址中有大括号的分别是什么,其他对着填就行了。仔细一看 b64url_articledId 就是我正要找的那串不知名的东西!

至于什么事base64url我之前也不知道,现google,ok是一种加密方法

把之前那串东西复制下来,在网上找一个解密的网页,拿解密之后的一串字符和原网页的article id一对比,一模一样~



结了~~


这个方法可以套在好多新闻网站上~又可以愉快的报告了~


贴下Encode的代码

	String base64UrlDecode(String input) {
	    String result = null;
	    Base64 decoder = new Base64(true);
	  
	    String encoded = decoder.encodetoString(input.getBytes());
	    
	    result = new String(encoded);
	    return result;
	}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐