使用httpClient对带有验证码的网站写爬虫

2025-11-21 04:28:01

1、引用相关jar包,包括httpClient4.5及处理json相关的jar工具包

使用httpClient对带有验证码的网站写爬虫

使用httpClient对带有验证码的网站写爬虫

2、按f12可以切换到谷歌浏览器开发者模式,我们后面模拟发送请求需要使用到该调试工具的network选项卡,现在准备完毕

使用httpClient对带有验证码的网站写爬虫

1、通过分析可以看到验证码是通过一个get请求,请求中带有一个当前时间的时间戳

使用httpClient对带有验证码的网站写爬虫

2、因为该网站是https类型的,所以需要定制一个任何情况下都返回true的TrustStrategy,可以封装一个绕过未知证书的方法。如下图所示。

使用httpClient对带有验证码的网站写爬虫

3、根据2封装的方法,得到一个绕过https检测的CloseableHttpClient对象,由于发送请求验证码的get请求后,返回的是一个InputStream,所以需要封装一个将该流解析成子节数组的方法。

使用httpClient对带有验证码的网站写爬虫

4、使用当前时间戳,生成获取验证码的url,然后模拟出一个get请求,将网站响应得到的InputStream流通过io写入到本地磁盘,保存为一张图片。这个时候可以通过JFrame写个登陆界面,可以将刚才生成的图片加载到登陆界面。这一步得到验证码便可以完成。

使用httpClient对带有验证码的网站写爬虫

使用httpClient对带有验证码的网站写爬虫

1、通过查看该网站的源码,其登陆过程在js中进行处理,登陆采取的post请求,其登陆url和使用到的表单数据较为清晰

使用httpClient对带有验证码的网站写爬虫

2、使用上述url,及表单数据模拟出一个post请求,验证码可以成功登陆了。

使用httpClient对带有验证码的网站写爬虫

使用httpClient对带有验证码的网站写爬虫

使用httpClient对带有验证码的网站写爬虫

使用httpClient对带有验证码的网站写爬虫

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢