JSoup 直接抓取 URL 时对内容长度限制的解决办法

红薯 发布于 2017/11/24 20:11
阅读 452
收藏 6

JSoup 不只是一个 HTML 的解析器,它自带的 HTTP 客户端包非常好用,而且很简单,至少比 HttpClient 要简单好多。

但是在使用过程中发现在读取一些内容很大的不管文本或者图片时都会被截断。净研究发现默认 JSoup 的限制是 1024*1024,也就是 1M 的大小。

因此我们需要在连接时设置一下 maxBodySize ,具体方法如下:

Document = Jsoup.connect(url)
    .header("Accept-Encoding", "gzip, deflate")
    .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0")
    .maxBodySize(0)
    .timeout(600000)
    .get();

设置为 0 表示不限制大小,不过谨慎使用哦:)

加载中
0
HappyBKs
HappyBKs

@红薯 最近在写爬虫??

0
温安适
温安适

Jsoup,解决不了,由Js延迟生成的界面。举例:一个界面先加载了部分资源,之后由JS生成内部的div内容。

各位可有好办法?

不日小鸡
有,但是就不告诉你
温安适
温安适
回复 @两广总督bogang : 好的,我试试
两广总督bogang
两广总督bogang
htmlUnit+Jsoup
温安适
温安适
谢谢。
红薯
红薯
这个其他库也解决不了
0
nickleo
nickleo

HtmlUnit页面渲染 

返回顶部
顶部