用HttpClient模拟登录网站二(获取网页信息)
2009-09-14 14:07
671 查看
1.关于上一篇遗留一个问题--解决获取网页信息的乱码问题
2.对需要输入用户名和密码的网站模拟登陆(下面简称验证登录)
先贴代码
讲解:
验证登录肯定需要用户密码,在网站上我们是点击登录按钮登录,模拟登陆实质是一样的,利用Post方法提交参数来登录。
NameValuePair[] postData = { new NameValuePair("username", username),
new NameValuePair("userpwd", password) };//把用户名、密码保存到参数数组里面
pMethod.setRequestBody(postData);//设置请求的主题
username,userpwd 等是通过抓包工具获取的。
3.模拟登陆前程无忧
post提交以后如果想跳转到其他页面,用第一篇讲到的GetMethod("url");来实现跳转。
登录之后如要获取html--pMethod.getResponseBodyAsString();
经过以上步骤可以完成绝大部分的模拟登录。
HttpClient client=new HttpClient(); client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "gbk");//设置编码格式
2.对需要输入用户名和密码的网站模拟登陆(下面简称验证登录)
先贴代码
private PostMethod doPostMehtod51(String username, String password, String url) { HttpClient client = new HttpClient(); String loginUrl = url; client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "gbk"); PostMethod pMethod = new PostMethod(loginUrl); NameValuePair[] postData = { new NameValuePair("username", username), new NameValuePair("userpwd", password) }; pMethod.setRequestBody(postData); try { client.executeMethod(pMethod); Cookie[] cookies = client.getState().getCookies();// 获得登录的cookie if (CommonResume.getCookies() != null) { CommonResume.setCookies(null); CommonResume.setCookies(cookies);// 保存cookie } else { CommonResume.setCookies(cookies); } } catch (Exception e) { e.printStackTrace(); } pMethod.releaseConnection(); return pMethod; }
讲解:
验证登录肯定需要用户密码,在网站上我们是点击登录按钮登录,模拟登陆实质是一样的,利用Post方法提交参数来登录。
NameValuePair[] postData = { new NameValuePair("username", username),
new NameValuePair("userpwd", password) };//把用户名、密码保存到参数数组里面
pMethod.setRequestBody(postData);//设置请求的主题
username,userpwd 等是通过抓包工具获取的。
3.模拟登陆前程无忧
String loginUrl = "http://my.51job.com/my/My_Pmc.php"; PostMethod pm = doPostMehtod51(username, password, loginUrl); Header header = pm.getResponseHeader("location"); String uri = header.getValue(); if (loginUrl.equals(uri)) { state = true; }
post提交以后如果想跳转到其他页面,用第一篇讲到的GetMethod("url");来实现跳转。
登录之后如要获取html--pMethod.getResponseBodyAsString();
经过以上步骤可以完成绝大部分的模拟登录。
相关文章推荐
- 用HttpClient模拟登录网站一(获取网页信息)
- java爬虫--免登录,通过httpclient模拟登录并获取登录后的信息
- android 的模拟网页登录获取信息和JSOUP解析xml
- 通过httpclinet登录网站(https),并且获取网页上的信息。post+get
- 【CURL】模拟登录网站并获取用户信息
- 使用Selenium模拟浏览器登录,并获取页面信息
- Python爬虫模拟登录京东获取个人信息
- Django微信公众号开发(一)公众号内网页授权登录后微信获取用户信息
- 使用httpclient4.3.X模拟post请求登陆网站获取cookie信息的操作
- c# 模拟域帐号登录并获取登录信息
- 使用htmlunit工具来实现对新浪的模拟登录获取cookie操作(也可适用其他网站,最好是无验证码的)
- [asp.net]利用HttpRequest登录到某个网站,然后获取网站信息
- 获取需要登录的网页信息,session保持方法
- 微信开发笔记——微信网页登录授权,获取用户信息
- 利用HttpRequest登录到某个网站,然后获取网站信息的程序示例 [原创]
- 微信开发笔记——微信网页登录授权,获取用户信息
- 第9个HttpClient 例子,HttpClient+jsoup 扩展获取网站信息
- 模拟登录学校教务网 获取课程表信息
- 拱拱Lite开发(3):三翼页及湘大文库下载实现(解析网页获取信息及模拟登陆)
- 垂直发布—Httpclient模拟登陆获取页面信息(一)