在平常工做中,一般会遇到获取各类网络数据使用的状况,Java中可以使用Jsoup(Python中可以使用 BeatifulSoup)进行数据的获取及处理。网络
今天有朋友问,在使用 Jsoup 进行请求数据时,获取的响应结果信息一直不完整,而后帮忙解决了一下。下面把解决的方法记录下,方便后续遇到的亲,免受搜索却解决不了之苦。url
解决步骤:调试
一、脚本屡次执行时,未发生逻辑异常;code
二、执行过程当中,因接口响应时长缘由,有超时响应,默认超时时间为 30 秒;blog
更改超时时间为 100秒,以下所示:接口
Jsoup.connect(url).timeout(100000)
三、调试爬虫脚本,打印查看每次请求的响应数据大小,发现始终为 1MB;源码
Jsoup.connect(url).timeout(60000).execute().bodyAsBytes().length / 1024 / 1024
四、查看 Jsoup 的源码,发现 Jsoup 经过 HttpConnction.Request.maxBodySizeBytes 设置获取的响应数据大小,默认为 1MB,以下所示:io
经过 Connection.maxBodySize(大小) 设置获取的响应数据大小,以下所示:class
修改后,再次执行脚本,可成功获取全部的响应内容信息。搜索