设为首页 收藏本站
查看: 762|回复: 0

[经验分享] 博客园闪存客户端(只能看全站的~~)

[复制链接]

尚未签到

发表于 2017-2-24 06:02:17 | 显示全部楼层 |阅读模式
还是先上图




DSC0000.jpg






理想很丰满,现实很骨感,本来预想的是做一个完整的博客园闪存客户端的,但是今天搞了一天,最终只弄成了这样~~
下载地址:
windows 32位:http://pan.baidu.com/s/1gdqFs0F
windows 64位:http://pan.baidu.com/s/1pJmvuiv



一、 主要用到的技术



  简单的罗列下吧:
  1. 前端知识HTML+CSS
  2. 依赖的nodejs库
  request : 网络请求
  cheerio : 解析dom字符串
  3. NW.js 具体可以百度了解下



二、 部分代码



var handlerMap = {
"all": analysisAll,
"comment": analysisComment,
"following": analysisFollowing,
"my": analysisMy,
"mycomment": analysisMyComment,
"recentcomment": analysisRecentComment,
"mention": analysisMention
};
function analysis(ingListType, body) {
return handlerMap[ingListType](body);
}
var analysisAll = function (body) {
var result = [];
$ = cheerio.load(body);
$(".ing-item").each(function () {
var item = {};
item.blogUrl = $(this).find(".feed_avatar").find("a").attr("href");
item.avatar = $(this).find(".feed_avatar").find("img").attr("src");
item.author = $(this).find(".feed_body").find(".ing-author").text();
item.body = $(this).find(".feed_body").find(".ing_body").text();
item.time = $(this).find(".feed_body").find(".ing_time").text();
item.detailUrl = $(this).find(".feed_body").find(".ing_time").attr("src");
item.ids = $(this).find(".feed_body").find(".ing_reply").attr("onclick");
item.comments = [];
$(this).find(".feed_body").find(".ing_comments").find("li").each(function () {
console.log($(this).text());
if ($(this).text().trim()) {
var commentItem = {};
commentItem.time = $(this).find(".ing_comment_time").text();
commentItem.body = $(this).find(".ing_comment").text();
commentItem.author = $(this).find("[id*='comment_author']").text();
commentItem.ids = $(this).find(".ing_reply").attr("onclick");
item.comments.push(commentItem);
}
});
result.push(item);
});
return result;
};
module.exports.getIngList = function (ingListType, pageIndex, pageSize, callback) {
var url = ingBaseUrl + "?" + "ingListType=" + ingListType + "&" + "pageIndex=" + pageIndex + "&" + "pageSize=" + pageSize;
utils.get(url, function (body) {
var result = analysis(ingListType, body);
if (callback) {
callback(result);
}
});
};


  时间匆忙,最后也没写完,代码也没整理,写的很丑,只是让大家看看,不要借鉴,比如多次使用$(this).find(".feed_avatar")而没有把它声明成变量。
  上面代码的用途是从博客园获取闪存内容。
  获取到的内容是html的,并不适合直接使用,所以,将html解析了一下,放到js对象中。

三、 后语


  说下为什么放弃了吧~~
  上面显示全站的功能,写起来一直很顺畅,然后我就开始写其他模块。
  其他模块都有涉及到登录,然后就在浏览器F12里看博客园的代码。
  登录时候,用户名密码需要publickey来加密,还有需要一个VerificationToken,放在请求头里,publickey和这个token是一直变化的。
  然后我就先请求到这个登录页,拿到publickey和token还有cookie,然后把这些信息post过去,这样一直试,一直试,到最后竟然让输入验证码了~~
  好吧,give up~
  来看看这没整理的丑陋的不知道是否成功了没的代码......算了,还是不让看了~~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346283-1-1.html 上篇帖子: 前端自动化构建工具 Gulp 使用 下篇帖子: 前端js文件合并三种方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表