网络抓包,怎么用Java程序登录百度?

mimixi666 2014-07-02 11:27:05
听说只要这几个步骤就可以实现了,但是我现在都不知道怎么获取cookie:
1、访问http://www.baidu.com/并保存cookie
2、使用上面保存的cookie访问https://passport.baidu.com/v2/api/?getapi&tpl=mn& amp;apiver=v3&tt=1395058791532&class=login& logintype=dialogLogin&callback=bd__cbs__w6qu6获取token
3、使用token及上面的cookie包括用户码与密码等向https://passport.baidu.com/v2/api/?login发送POST请求进行登陆


是这样子吗?
public static void main(String[] args) throws IOException { 
// TODO Auto-generated method stub
URL url = new URL("http://www.baidu.com");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");

String key = null;
for (int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++) {
System.out.print(key + ":");
System.out.println(conn.getHeaderField(key));
}
}
打印的是这些数据:
Date:Wed, 02 Jul 2014 14:42:58 GMT
Content-Type:text/html; charset=utf-8
Transfer-Encoding:chunked
Connection:Keep-Alive
Vary:Accept-Encoding
Set-Cookie:H_PS_PSSID=1461_5225_6996_7442_6505_7232_6018_7203_7254_7134_7387_6888; path=/; domain=.baidu.com
Set-Cookie:H_PS_PSSID=1461_5225_6996_7442_6505_7232_6018_7203_7254_7134_7387_6888; path=/; domain=.baidu.com
Set-Cookie:H_PS_PSSID=1461_5225_6996_7442_6505_7232_6018_7203_7254_7134_7387_6888; path=/; domain=.baidu.com
P3P:CP=" OTI DSP COR IVA OUR IND COM "
Cache-Control:private
Cxy_all:baidu+5fefedc1d0be4850595fb931d0d9997c
Expires:Wed, 02 Jul 2014 14:42:36 GMT
X-Powered-By:HPHP
Server:BWS/1.1
BDPAGETYPE:1
BDQID:0xd297ffda00049779
BDUSERID:0


哪些才是cookie?
还有我应该怎么用cookie去访问第二个网站?
很困惑。。
...全文
377 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mimixi666 2014-07-03
  • 打赏
  • 举报
回复
引用 1 楼 ygycomon 的回复:
这问题你上次问过吧,还没研究出来呢 百度这个登录的难点在于你要研究透他是如何根据前端传的参数获取验证码的,你现在这个流程里连验证码都没有传过去,如何登录得了?
上次那个到现在都还没有解决,但是我除了那一点没有解决,很多地方都还没有解决。。。 上次那个是百度注册,现在这个是百度登陆,百度登陆有时候是不需要验证码的。。 之前你研究的那个token, 后来,我在网上搜索了几番,貌似能找得到那个token值: 1、访问http://www.baidu.com/并保存cookie 2、使用上面保存的cookie访问https://passport.baidu.com/v2/api/?getapi&tpl=mn& amp;apiver=v3&tt=1395058791532&class=login& logintype=dialogLogin&callback=bd__cbs__w6qu6获取token3、使用token及上面的cookie包括用户码与密码等向https://passport.baidu.com/v2/api/?login发送POST请求进行登陆 具体看这个网址教程说的: http://blog.163.com/lixiangqiu_9202/blog/static/53575037201421823617918/ 但是现在我不懂的是,不知道怎么用java程序: 1.如何保存cookie,哪个才是cookie 2.怎么用保存的cookie,访问某个特定的网站 3.怎么使用token和cookie还有用户名,密码这些用post去访问某个网站。 还有我上面那样保存cookie是不是正确了, 这样是不是找到了cookie?
public static void main(String[] args) throws IOException { 
// TODO Auto-generated method stub
URL url = new URL("http://www.baidu.com");

HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");

String key = null;
for (int i = 1; (key = conn.getHeaderFieldKey(i)) != null; i++) {
System.out.print(key + ":");
System.out.println(conn.getHeaderField(key));
}
}
打印的数据:
Date:Wed, 02 Jul 2014 14:42:58 GMT
Content-Type:text/html; charset=utf-8
Transfer-Encoding:chunked
Connection:Keep-Alive
Vary:Accept-Encoding
Set-Cookie:H_PS_PSSID=1461_5225_6996_7442_6505_7232_6018_7203_7254_7134_7387_6888; path=/; domain=.baidu.com
Set-Cookie:H_PS_PSSID=1461_5225_6996_7442_6505_7232_6018_7203_7254_7134_7387_6888; path=/; domain=.baidu.com
Set-Cookie:H_PS_PSSID=1461_5225_6996_7442_6505_7232_6018_7203_7254_7134_7387_6888; path=/; domain=.baidu.com
P3P:CP=" OTI DSP COR IVA OUR IND COM "
Cache-Control:private
Cxy_all:baidu+5fefedc1d0be4850595fb931d0d9997c
Expires:Wed, 02 Jul 2014 14:42:36 GMT
X-Powered-By:HPHP
Server:BWS/1.1
BDPAGETYPE:1
BDQID:0xd297ffda00049779
BDUSERID:0
是不是Set-Cookie就是cookie的数据? 那如果我用保存下来的cookie数据去访问 这个网站: https://passport.baidu.com/v2/api/?getapi&tpl=mn& amp;apiver=v3&tt=1395058791532&class=login& logintype=dialogLogin&callback=bd__cbs__w6qu6 程序该怎么写? 我主要就是代码,不太会写,不知道应该要调用那些api。。
致知Fighting 2014-07-03
  • 打赏
  • 举报
回复
这问题你上次问过吧,还没研究出来呢 百度这个登录的难点在于你要研究透他是如何根据前端传的参数获取验证码的,你现在这个流程里连验证码都没有传过去,如何登录得了?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧