利用java和浏览器导出的cookies进行模拟登录百度贴吧

本文介绍了如何使用Java和HttpClient模拟登录百度贴吧,通过分析登录过程中的cookies,绕过复杂参数加密,实现自动化登录。首先,通过抓包获取登录所需的固定和变动参数,然后利用HttpClient构造POST请求。当登录成功后,服务器返回的cookies可用于后续请求,以保持登录状态。通过获取和利用cookies,可以简化模拟登录的复杂性。
摘要由CSDN通过智能技术生成

这一久一直在尝试利用java写一个爬虫程序。java语言里面可以利用现成的工具包HttpClient+jsoup就能完成简单爬虫程序的编写。

爬虫程序的第一部就是“模拟登录”,模拟登录顾名思义也就是模拟浏览器提交表单的过程,因此需要对这个过程进行抓包分析,分析出在网站登录期间都提交了一些什么参数,然后利用这些参数构造相应的post请求;对于这种简单的抓包需求,我们用IE的F12开发者工具足够了用不着Wireshark这样复杂的工具。

最开始我尝试抓取登录知乎和自己学校的教务处,总的来说这两个网站的模拟登录post请求挺简单的。下面这个截图是知乎就是知乎的登录参数:

下面是抓取的整个过程:

1.打开IE浏览器,按下F12打开开发人员工具。

2.打开知乎的登录页,输入你的账户和密码或许还需要验证码,并提交。

3.这个时候开F12工具里面会充满了各种http请求和响应,找到方法为post的那几个请求并点开各个请求的正文(post方法和get方法的不同大家可以自行百度),总有一个有知乎的登录参数。如下图所示,第四个就是我们想要的,点开就能看见如上图所示的登录参数


4.对post参数的解析。总的来说一个网站登录时候post的参数分为随机和不是随机的两种。知乎登录需要四个参数,

_xsrf,email,password以及rember_me四个参数。

_xsrf:这是一个变动的值,但是我们可以从登录页面的源代码中找出该值来,具体到编程的时候你需要先向http://www.zhihu.com/这个网址发送一个get请求,然后从返回的结果中利用正则表达式获取到_xsrf的值。就像下面这样。

HttpClient httpClient = new HttpClients.createDefalut();
HttpGet httpGet = new HttpGet("http://www.zhihu.com/
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值