之前的时候Kaisir有练手写过一个小的人人网的日志导出工具,也是一直开源放在那里的。不过近期有童鞋在我部落格留言说之前的那个失效了,而且他自己尝试修改却总是报错。好吧,Kaisir还是比较喜欢助人为乐的,拿出一些时间,又看了看曾经写的这个小东西,顺便再次分析下人人网的结构~~
最近人人网的结构可以说较我之前研究的时候做了很多修改,主要修改如下:
1)全站使用Ajax技术,很多地方都是进行了异步刷新。这样的好处是只刷新需要的地方,增强用户体验的同时减少了带宽的消耗。
2)请求页面的时候对来路(Referer)进行了判断,请求页面时,先通过请求ajaxproxy.htm这个文件来设置Referer,如果不包含这个Referer则转回首页。
3)大部分连接增加异步请求参数。这个很奇怪,我使用FireBug对数据包进行分析抓取的时候没有抓到这个参数,以至于我多次提交系统都给我返回了错误的页面,后来使用Wireshark抓包做协议分析才看到这个参数~~郁闷啊郁闷~~这里浪费了很多时间~~
既然知道了这些改变,那修改我的程序就简单多鸟~~不过这次还是重写了下HttpHelper这个类,上次写的那个冗余太多了,代码不漂亮~这下尽可能的封装,然后再使用函数的重构把它给分开了~~
大家普遍反映,20120209版出现不能备份的bug,请大家先下载之前的版本 :)
2012年2月9日更新:
1)提高日志备份的稳定性,出现错误可以自动跳过。
点此下载:RenRen20120209
源代码:RenRen_src
2011年4月7日更新:
这次变动的地方比较多,主要变动如下:
1)改变文章获取方式,由以前获取全部列表后再获取文章转变为获取一页列表保存一页文章。
2)增加断点续备功能,如果中途备份出错,下次备份开始时会接着上次进度继续,如果不想这样做,可以手动删除位于D:Kaisir下面的savepoint.dat
3)增加导入的文章导出功能,以前导入校内的日志备份出来全是空白。
4)修正“通过手机发布的日志”保存空白的情况。
下载地址:
http://code.google.com/p/renren-backup-tool/
2011年3月13日更新:
我把这个小项目在Google Code托管了,详情可见:
http://code.google.com/p/renren-backup-tool/
希望参与这个项目维护的可以联系我 :)
2011年3月12日更新:
增加随机间隔,模拟真实用户访问,防止保存过程中被人人网强制中断连接。
按照惯例,依然提供源代码,与编译好的程序。
人人网日志备份工具:点此下载
人人网日志备份工具(源代码):点此下载
2010年11月17日更新:
增加图片下载功能(感谢ALsite增加此功能)
好吧 这回依然提供源代码跟可直接运行的程序
PS:
1)页面默认保存在D盘Kaisir文件夹下。
2)如果文章显示为乱码,请手动指定文件编码为UTF-8
HttpWebRequest……
人人网我现在很少上了。。
呵呵,学习了。有空给我指导指导各类聊天软件如QQ,gtalk的什么协议吧
@清照, 哈哈 这个是吧 我可能指导不了哇 这些IM的软件我就研究过飞信的 SIP
读了这篇文章后我就着手研究C#爬虫了,HttpWebRequest和HttpWebResponse的应用真的是五花八门:)
下载下来运行不了耶?大神指教一下?我的系统是win7
Win7应该没有问题的,运行之后报错么?
你好 ,软件可以运行,但是日志哪里去了呢?
@rqy, 一看你就没有仔细看我的日志,我有写到:1)页面默认保存在D盘Kaisir文件夹下
貌似只能导出最近的20篇
@曹因斯坦, 最近我没有时间更新我这款软件,可能人人网又更改它的链接了。如果可以,你可以试着下载我提供的源代码之后加以修改,尝试下DIY的乐趣:)
电脑小白啊,这个还得仰仗你了
很感谢提供这个代码!人人网可以导入其他blog的日志,但不能导出,这种小家子气的设置难以让人尊敬..
@windingway, 嘿嘿 我也是比较看不惯他只能导入不能导出才写了这个辅助小工具的:)
你好,为什么不能下载了呢?还是我的电脑问题,能不能给我发到邮箱里 麻烦了 谢谢~~war163@hotmail.com
@war, 源代码已经发送到您的邮箱,程序你还是来这里下载吧,我用Gmail压缩了发送他提示exe不能发送 :)
赞~
@eeeya, 嘿嘿 谢谢eeeya童鞋的支持咯:)
哥们, 人人网日志导出(备份)工具 这个程序无法下载,能给我信箱发一个吗? jack.yarun@gmail.com 谢谢
已发送:)
你好,exe运行起来提示说我的网络配置有问题不能运行啊,怎么办
你好,这个问题我还没遇到过,请按照下面步骤检查
1)确认已经安装.net framework 我的部落格上放出的最新版已经是vs2010编译的了,所以需要你安装.net framework 4
2)如果安装了.net framework 4还是不能够运行的话,请把运行出错的截图发送到 webmaster@kaisir.com 我会分析出错的原因修正后再给你发一遍程序的
最后 感谢你的回复 :)
谢谢你,你太牛了!
很好用,不过还是出了点问题
安装之后可以了,但是一开始导出
我有12页,共119篇
到第20篇就会蹦出一个错误的提示
无法继续导出了。。。
你做的还有什么好的软件推荐一下
截图已发
人人网看来又改变了日志的展示方式,而且服务器也防止短时间内多次访问了,看来我得改进下我的程序了……
很好很强大
多创造这样实用的好软件啊
鼓励鼓励
嘿嘿 Thanks!大家的支持就是我前进的动力!
谢谢分享~~
嘿嘿 客气 :)
原先自己写采集人人网日志的时候,怎么都搞不定,,看了这篇文章才知道有ajaxproxy.htm这个东西在搞鬼。。现在采集自己的日志ok了,,不过采集好友的日志还是搞不定。。。由于ajaxproxy.htm里面的机制我也不懂,,所以灰常希望博主能分享采集人人网好友日志的方法。。不胜感激呐 ~
你访问的时候用FireBug结合Wireshark抓一下包,然后模拟他的访问过程就好了呀。
额额嗯,,我再研究下吧 谢谢哈
客气,不过友情提醒,我没做别人日志的导出是怕涉及隐私与版权,你做这样的东西一定注意啊~
嗯嗯~~肯定的~~我是想采集那些本来就是用作发公告发新闻的账号的日志 比如各种学生团体用作公共账号的号,, 呵呵
谢谢阿 这个真的很实用~感觉你就是武侠小说中特立独行的大侠~
:)过奖了哈哈哈
我今天也帮别人写了一个《人人网(校内网)日志导出(备份)工具》,参考了你的代码。
有几点建议:
1、编译的时候没有必要用.Net Framework 4.0,就算是Windows 7也仅仅自带了.Net 3.5,更不用说其他系统,不安装庞大的.Net 4根本无法运行。
2、不是每个系统都有D盘的,最好能让用户自定义文件夹,或者直接备份到当前文件夹。
3、匹配图片src的正则表达式不对,导致某些图片没有下载和替换。
1)这个是我懒,我在虚拟机里仅部署了VS2010+FW4的环境。
2)这个同样是我懒
3)图片部分仅仅考虑了校内图片的导出,没考虑导入校内站的文章的导出,这样防止某些不自觉的人大批量的偷取别人的日志,至少偷了日志图片却从别人的地址下载~~
下一版我会改变1,2,感谢意见哈 !
1、VS2010编译选项中可以选择相应的.Net版本
2、这个不评论。。。
3、没看懂你说的是什么意思。。。
你好!我是西安交通大学软件工程的学生~
这个不支持64bit机吧~?
可是我也不会改进= = 还没开始学java…
这个是支持x64的计算机的,我在我的Win7 X64bit测试通过,如果不能运行,需要你安装.net Freamwork 3.5或以上版本
此外,这个不是用java写的……是C#的。
作为伸手党实在不应该要求更多,但是我想弱弱的反应一下,为什么我用20110407版只能导出列表第一页的10篇日志……看大大之前的那篇日志的回复,也是这个问题,大大说是因为人人的列表表达式还是什么的有变化就不行==完全不懂,所以能不能请求大大再看一下到底是我个人的问题还是人人又使坏了?非常感谢……【爬走】
可能人人网又改变翻页规则了,我最近比较忙,暂时不会更新这个工具,大约可能要到2周以后才有时间更新它,到时候我给你邮件好么?
大侠,我也求一份更新后的版本。我不想被人人网束缚我的劳动成果,如果哪一天把我封了,我就都没了。qingyinxiangsheng@163.com
如果可以让用户自己输入列表页就好了,您也不用操心翻页规则变化。
就是 用户名->密码->列表页网址,然后循环地提示列表页网址。呵呵~
这个提议不错,而且实现起来也不难:)
好牛呀!顶一下!!!找了好久才找到能导出日志的网站~感谢感谢!
嘿嘿 这个工具好久没更新了 我的人人网都注销了 :)
你好,我的电脑是mac操作系统,原先有个xp系统(现在卸除了),xp收藏夹里的人人网日志,相册我拷贝到u盘里,然后又拷贝到mac操作系统,问题出现了:拷贝过来的别的网站的东西都能打开,只有人人网里的打不开,打不开的人人网网站结尾是:ajaxproxy.htm。这是为什么阿?什么原因啊
人人网改变了收藏的地址,你可以随便收藏个人人网的内容(或者收藏原来收藏过的一篇日志)之后对收藏的地址进行比较,看看除了文章id不同之外,其他还有什么地方不同,之后按照刚刚收藏的这个地址为模板,再去修改之前的地址应该就可以 :)
希望版主开发个能导出好友资料的小工具,我觉得这个很有用的,好多同学的院校,专业对以后发展有帮助
不是有人人通讯录么?
我想继续更新这个工具,添加一个导出好友的,将我拉进google project …我的账号是fartpigisme@gmail.com
BUG 貌似很多,直接采用字符串的形式用正则表达式 会有很多问题啊,采用DOM的结构的话 就好多了
自从我不玩校内以后这个程序我就很少更新了,欢迎你把你的想法全在这个程序上实现出来,已经把你加入Project :)
你好。我下载您最新的人人网日志备份程序,V0.6的。输入用户名和密码之后窗口显示登录成功了,但是显示了一些信息之后就莫名的报错了,不知道是什么原因。
请教!
不好意思 你能提供出错信息么?如果一闪而过的话,麻烦你在命令行下执行程序 :)
先赞一个!想要做备份很久了,509篇日志呐!现在正在运行中……发现每篇出来是独立的网页啊,可不可以一次性导成一个大的txt呢?因为这样可以装进word里面统一重新排版编辑,可以做成自己的自传,嘿嘿嘿……还有你的备份标题是序列,不是按照日志标题来命名的,查看起来有些不够方便呢……哎呀呀,我好贪得无厌~~^.^ 我去Gtalk加你 :)
一闪而过就没了,在d盘kaisir文件下的dat文件只有1kb
2月9日版人人导出工具测试:导出前两篇正常,导出第三篇失败,然后程序一闪而过直接关闭,估计是因为第三篇里包含图片
感谢您提供的Bug测试,若有问题请暂时使用之前的版本,新版本因我的账号已经注销,没经过多少测试,给您带来的不便,Kaisir表示非常抱歉~!
伸手党来了。。。今天用了20110407的程序,登录成功之后,下载的日志html文件内容都是“标题:,时间:,分类:,内容:”,完全没有日志内容。也许是人人网改了一些参数或者地址路径吧。ps,我是win7 64b,用管理员身份运行。 anyway,谢谢。
不好意思,我已经有很长的时间都没有使用过人人网了,暂时也没有更新的打算,抱歉。
在RenRenHelper.cs中,RenRenHelper.GetArt()中,普通日志的正则表达式
regex = new Regex(“(.*)s(.*)(分类:(.*))ss([sS]*?)”, RegexOptions.None);
改为
regex = new Regex(“(.*)s(.*)(分类:(.*))ss([sS]*?)”, RegexOptions.None);
能用,就是加入了data-wiki = “”
感谢你提出修改方案 :)
无法备份,自动退出了。。一个bat文件丢失
这个程序我已经好久没有更新了,不保证现在是否还能使用。
基本不去人人网!
您好,有时间能更新一下这个工具吗?在网上找了好久,只有这个最靠谱,只是很久没更新用不了了。