【java爬虫】HttpClient4.5模拟登录知乎

0.关于HttpClient

虽然在 JDK 的 java net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。

  1. 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
  2. 支持自动重定向
  3. 支持 HTTPS 协议
  4. 支持代理服务器等

1.HttpClient4.5模拟登录网站步骤

  • 创建CloseHttpClient和HttpClientContext对象
  • 创建HttpPost(类似http中的post请求)对象
  • 添加请求参数到HttpPost对象中
  • 执行请求
  • 登录成功

由于网站模拟登录都会有验证码,关于验证码的处理一般有以下两种方式:

  1. 验证码识别接口(大多都是收费的),这种情况适合大规模登录。
  2. 将验证码下载到本地,手动输入验证码(以下例子采用这种方式)。

2.模拟登录的分析过程

  • 浏览器访问知乎 - 与世界分享你的知识、经验和见解知乎登录页面,然后右键审查元素(快捷键F12),选择network,把Preservre log选上,然后输入账号密码和验证码,点击登录。如果登录成功会重定向到知乎首页然后会有大量的请求了,这时找登录请求可能不方便。所以这里有个小技巧,故意把密码输错,这时候就不会重定向跳转了,就可以容易的找到登录请求。这里我用的邮箱登录。如下图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值