我们要做的就是获取服务器需要的数据,然后用HttpClient模拟浏览器提交。

有几点需要说明一下:

go标签内的href是我们第二次请求的地址,通过这个地址来获取cookie。

用户密码那个field的name属性是随机变化的,需要先获取它然后提交。

下面是整个源代码。

思路:先获取表单的值,然后用POST方法提交。注意添加RequestHeader信息,否则会被服务器拒绝(403)。

/*** 获取手机版微博的cookies

*@paramusername

* 微博用户名

*@parampassword

* 微博密码

*@returnCookie[]*/

publicCookie[] getMCookies(String username, String password){

Cookie[] cookies= null;

HttpClient client;

PostMethod post= null;try{

Document doc= Jsoup.connect("http://3g.sina.com.cn/prog/wapsite/sso/login.php").get();

Elements elements= doc.getElementsByTag("postfield");

String randUrl= doc.getElementsByTag("go").first().attr("href");

String pwName= elements.get(1).attr("name");

String vkValue= elements.get(2).attr("value");

String backURL= elements.get(4).attr("value");

String backTitle= elements.get(5).attr("value");

String url= "http://3g.sina.com.cn/prog/wapsite/sso/"+randUrl;

post= newPostMethod(url);

post.setRequestHeader("User-Agent","Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.77 Safari/537.1");

post.setRequestHeader("Referer", "http://weibo.com/");

post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

post.setParameter("mobile", username);

post.setParameter(pwName,password);

post.setParameter("vk", vkValue);

post.setParameter("remember", "on");

post.setParameter("backURL", backURL);

post.setParameter("backTitle", backTitle);

post.setParameter("submit", "1");

client= newHttpClient();

client.executeMethod(post);

cookies=client.getState().getCookies();

}catch(IOException e){

e.printStackTrace();

}finally{

post.abort();

}returncookies;

}

如果用户名密码正确的话,应该就可以获得cookie了。

接下来如果想要访问某些网页只需要带上cookie就行了。

由于新浪的网页可能会变化,所以不保证此方法一直能用,不过大体思路应该是不会变的。

转:http://www.cnblogs.com/e241138/archive/2012/09/16/2687120.html

java 模拟手机版微博登录_HttpClient 模拟登录手机版新浪微博相关推荐

  1. Python爬虫【二】爬取PC网页版“微博辟谣”账号内容(selenium同步单线程)

    专题系列导引   爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集   课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...

  2. Python爬虫【四】爬取PC网页版“微博辟谣”账号内容(selenium多线程异步处理多页面)

    专题系列导引   爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集   课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...

  3. Python爬虫【三】爬取PC网页版“微博辟谣”账号内容(selenium单页面内多线程爬取内容)

    专题系列导引   爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集   课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...

  4. python模拟登录移动版微博

    本博文主要介绍一下如何利用的python的requests包如何模拟登录移动版微博https://passport.weibo.cn/sso/login,好了废话不多说,下面主要介绍一下基本步骤: 运 ...

  5. 登录成功后服务器响应跳转页面,Java模拟腾讯微博的网页登录成功

    继昨日[Java模拟腾讯微博的网页登录失败],终于找到了原因,问题出在登录时u1这个参数上. 在官方的JS中,"http://t.qq.com"是被URL编码后发送的,而我当时以为 ...

  6. Java模拟新浪和腾迅自动登录并发送微博(2013年3月更新可用)

    1.准备工作 只是登录无需申请新浪和腾迅的开发者账号,如果需要发送微博功能,需要申请一个新浪和腾迅的开发者账号,并添加一个测试应用. 过程请参考官方帮助文档,申请地址:新浪:http://open.w ...

  7. php 新浪通行证、新浪微博模拟统一登录 (后台网页抓取版) 2016

    前几天做了一个Java的新浪通行证模拟登录测试.现在给大家一个php的新浪通行证.微博登录的示例,下面是在phpcms中实现的,访问链接的方式与单独php项目有些差异,php单独项目时,对应访问的链接 ...

  8. php网站统一登录,php新浪通行证、新浪微博模拟统一登录(后台网页抓取版)2016

    前几天做了一个Java的新浪通行证模拟登录测试.现在给大家一个php的新浪通行证.微博登录的示例:具体都有备注,大家阅读代码吧. 'login.sina.com.cn','User-Agent' =& ...

  9. 从入门到入土:Python实现爬取刷新微博推荐和最新好友微博|cookie调用|模拟登录

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) Python实现爬取刷新微博推荐和最新好友微博|cookie ...

最新文章

  1. 7大类卷积神经网络(CNN)创新综述
  2. Science:微生物组“淘金热”,从人体中发现新型抗菌剂
  3. 使用 C# 开发智能手机软件:推箱子(十二)
  4. php 调取子栏目,Dedecms 如何调取某个栏目所在的顶级栏目及顶级下的子栏目
  5. MCN是啥?了解一下这5个互联网热词
  6. gridview 强制过长数据进行换行
  7. 创建表结构相同的表,表结构相同的表之间复制数据,Oracle 中 insert into XXX select from 的用法...
  8. ieda使用 在jsp页面中,有时候会出现不能智能显示方法 idea pageContext.setAttribute...
  9. 很多城市无法发展软件业
  10. 【网络教程】群晖修改 sn 和 MAC,生成器,cpolar内网穿透
  11. 51单片机中断检测回复http://www.51hei.com/bbs/dpj-162071-1.html单片机点亮小灯的问题,几行代码,实在想不通怎么执行的
  12. 干眼能从事计算机工作吗,上班族长时间面对电脑须谨慎干眼症
  13. 'grunt' 不是内部或外部命令,也不是可运行的程序 或批处理文件
  14. C++知识整理系列(五)—— auto自动类型
  15. 解决印象笔记无法同步的问题
  16. 浅谈塑胶件产品结构设计的几个主要原则
  17. IMCO正品行货机使用问题汇总与解答
  18. 基于滴滴云搭建 Ceph 开发环境
  19. 关于android 电池的一些实用性探讨
  20. 蓝桥-最大最小公倍数(互质) (贪心)

热门文章

  1. 组策略(GPO)横向移动
  2. 计算机自动睡眠无法启动,【求助】电脑休眠无法唤醒或开机不能。跪求各路大侠解救!...
  3. Divx编解码器的研究与设计
  4. 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Ex
  5. 关键字关键字工具网页分析
  6. 一种快速在excel里转换编码方式为utf-8的方法
  7. 电子邮件营销的七大特殊案例
  8. 123.火箭发射特效
  9. python 读取xxx.json文件,写入json数据到文件
  10. smtp 虚拟服务器,了解 SMTP 虚拟服务器