利用HTTP取MSN联系人过程

23 篇文章 0 订阅
14 篇文章 0 订阅

利用HTTP取MSN联系人过程


1.登录页
http://login.live.com/
可以得到登录提交参数和相应的post地址

 

2.登录参数
login  -- 用户名
passwd  --  密码
LoginOptions  -- 登录选项,用值2即可
type -- 为空即可
PPFT -- 一个很长的字串,从input标签中取
PPSX -- 一个短的字串,从input标签中取
PwdPad --
   String pwdpad = "IfYouAreReadingThisYouHaveTooMuchFreeTime";
   以上的字串从后面截去密码长度的字符串的值

 

3.post请求
https://login.live.com/ppsecure/post.srf?bk=1259466182
后面需要加入一个参数bk=System.currentTimeMillis()

 

4.取联系人
1)首先,取得http://people.live.com/?rru=contacts页面的内容


2)这个页面中有一个iframe,指向真正的联系人页面,可以利用正则表达式得到
如:
<iframe id="UIFrame" name="UIFrame"  src="http&#58;&#47;&#47;bl107w.blu107.mail.live.com&#47;mail&#47;ContactMainLight.aspx&#63;n&#61;552148275" οnlοad="uiFrameLoad();"
src后面就是联系人首页的地址
如:
http://bl107w.blu107.mail.live.com/mail/ContactMainLight.aspx?n=552148275
这里url进行了编码,需要进行解码
content.replaceAll("&#58;", ":")
       .replaceAll("&#47;", "/")
       .replaceAll("&#63;", "?")
       .replaceAll("&#38;", "&")
       .replaceAll("&#61;", "=");
同时,也要得到host的地址,后面要用到


3)取得联系人的循环
得到第一页的联系人
同时看页面中还有没有形如 “ContactMainLight.aspx?ContactsSortBy=FileAs&Page=”的链接形式
如果有的话,访问下一页;链接形如:http://bl107w.blu107.mail.live.com/mail/ContactMainLight.aspx?ContactsSortBy=FileAs&Page=2&n=552148275
如果没有的话,则到最后一页了,跳出循环


4)取某一页的联系人
页面回复中有如下的json数据
window.cxp_ic_menu_data = {里面是数据};
从页面中取回json数据后,可以得到联系人
用System.out.println()打印联系人姓名时,可以看到 &#22528;&#36741; 形式的编码,这是HTML中汉字的unicode码,需要将其转换成相应汉字
可以利用查表法,先将编码和汉字的对应放到一个Map中,然后利用编码查找相应汉字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值