Java学习-055-Jsoup爬虫通过设置获取响应数据大小的最大值,解决因默认获取 1MB 响应数据导致的无法获取全部的响应数据内容问题
在日常工作中,通常会遇到获取各种网络数据使用的情况,Java中可使用Jsoup(Python中可使用 BeatifulSoup)进行数据的获取及处理。
今天有朋友问,在使用 Jsoup 进行请求数据时,获取的响应结果信息一直不完整,然后帮忙解决了一下。下面把解决的方法记录下,方便后续遇到的亲,免受搜索却解决不了之苦。
解决步骤:
1、脚本多次执行时,未发生逻辑异常;
2、执行过程中,因接口响应时长原因,有超时响应,默认超时时间为 30 秒;
更改超时时间为 100秒,如下所示:
Jsoup.connect(url).timeout(100000)
3、调试爬虫脚本,打印查看每次请求的响应数据大小,发现始终为 1MB;
Jsoup.connect(url).timeout(60000).execute().bodyAsBytes().length / 1024 / 1024
4、查看 Jsoup 的源码,发现 Jsoup 通过 HttpConnction.Request.maxBodySizeBytes 设置获取的响应数据大小,默认为 1MB,如下所示:
通过 Connection.maxBodySize(大小) 设置获取的响应数据大小,如下所示:
修改后,再次执行脚本,可成功获取所有的响应内容信息。
欢迎 【 留言 || 关注 || 打赏 】 。您的每一份心意都是对我的鼓励和支持!非常感谢!欢迎互加,相互交流学习!
作者:范丰平,本文链接:https://www.cnblogs.com/fengpingfan/p/10875227.html
Copyright @范丰平 版权所有,如需转载请标明本文原始链接出处,严禁商业用途! 我的个人博客链接地址:http://www.cnblogs.com/fengpingfan
