java 模拟手机版微博登录_HttpClient 模拟登录手机版新浪微博
我们要做的就是获取服务器需要的数据,然后用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 模拟登录手机版新浪微博相关推荐
- Python爬虫【二】爬取PC网页版“微博辟谣”账号内容(selenium同步单线程)
专题系列导引 爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集 课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...
- Python爬虫【四】爬取PC网页版“微博辟谣”账号内容(selenium多线程异步处理多页面)
专题系列导引 爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集 课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...
- Python爬虫【三】爬取PC网页版“微博辟谣”账号内容(selenium单页面内多线程爬取内容)
专题系列导引 爬虫课题描述可见: Python爬虫[零]课题介绍 – 对"微博辟谣"账号的历史微博进行数据采集 课题解决方法: 微博移动版爬虫 Python爬虫[一]爬取移 ...
- python模拟登录移动版微博
本博文主要介绍一下如何利用的python的requests包如何模拟登录移动版微博https://passport.weibo.cn/sso/login,好了废话不多说,下面主要介绍一下基本步骤: 运 ...
- 登录成功后服务器响应跳转页面,Java模拟腾讯微博的网页登录成功
继昨日[Java模拟腾讯微博的网页登录失败],终于找到了原因,问题出在登录时u1这个参数上. 在官方的JS中,"http://t.qq.com"是被URL编码后发送的,而我当时以为 ...
- Java模拟新浪和腾迅自动登录并发送微博(2013年3月更新可用)
1.准备工作 只是登录无需申请新浪和腾迅的开发者账号,如果需要发送微博功能,需要申请一个新浪和腾迅的开发者账号,并添加一个测试应用. 过程请参考官方帮助文档,申请地址:新浪:http://open.w ...
- php 新浪通行证、新浪微博模拟统一登录 (后台网页抓取版) 2016
前几天做了一个Java的新浪通行证模拟登录测试.现在给大家一个php的新浪通行证.微博登录的示例,下面是在phpcms中实现的,访问链接的方式与单独php项目有些差异,php单独项目时,对应访问的链接 ...
- php网站统一登录,php新浪通行证、新浪微博模拟统一登录(后台网页抓取版)2016
前几天做了一个Java的新浪通行证模拟登录测试.现在给大家一个php的新浪通行证.微博登录的示例:具体都有备注,大家阅读代码吧. 'login.sina.com.cn','User-Agent' =& ...
- 从入门到入土:Python实现爬取刷新微博推荐和最新好友微博|cookie调用|模拟登录
写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) Python实现爬取刷新微博推荐和最新好友微博|cookie ...
最新文章
- 7大类卷积神经网络(CNN)创新综述
- Science:微生物组“淘金热”,从人体中发现新型抗菌剂
- 使用 C# 开发智能手机软件:推箱子(十二)
- php 调取子栏目,Dedecms 如何调取某个栏目所在的顶级栏目及顶级下的子栏目
- MCN是啥?了解一下这5个互联网热词
- gridview 强制过长数据进行换行
- 创建表结构相同的表,表结构相同的表之间复制数据,Oracle 中 insert into XXX select from 的用法...
- ieda使用 在jsp页面中,有时候会出现不能智能显示方法 idea pageContext.setAttribute...
- 很多城市无法发展软件业
- 【网络教程】群晖修改 sn 和 MAC,生成器,cpolar内网穿透
- 51单片机中断检测回复http://www.51hei.com/bbs/dpj-162071-1.html单片机点亮小灯的问题,几行代码,实在想不通怎么执行的
- 干眼能从事计算机工作吗,上班族长时间面对电脑须谨慎干眼症
- 'grunt' 不是内部或外部命令,也不是可运行的程序 或批处理文件
- C++知识整理系列(五)—— auto自动类型
- 解决印象笔记无法同步的问题
- 浅谈塑胶件产品结构设计的几个主要原则
- IMCO正品行货机使用问题汇总与解答
- 基于滴滴云搭建 Ceph 开发环境
- 关于android 电池的一些实用性探讨
- 蓝桥-最大最小公倍数(互质) (贪心)
热门文章
- 组策略(GPO)横向移动
- 计算机自动睡眠无法启动,【求助】电脑休眠无法唤醒或开机不能。跪求各路大侠解救!...
- Divx编解码器的研究与设计
- 免费数据库(SQLite、Berkeley DB、PostgreSQL、MySQL、Firebird、mSQL、MSDE、DB2 Ex
- 关键字关键字工具网页分析
- 一种快速在excel里转换编码方式为utf-8的方法
- 电子邮件营销的七大特殊案例
- 123.火箭发射特效
- python 读取xxx.json文件,写入json数据到文件
- smtp 虚拟服务器,了解 SMTP 虚拟服务器