我正在尝试使用JSoup限制下载的页面/链接的大小,给定类似以下内容(Scala代码):val document = Jsoup.connect(theURL).get();
我只想获取给定页面的前几个KB,然后停止尝试下载超出此范围的文件。如果有一个很大的页面(或者theURL
是一个不是html的链接,并且是一个大文件),那么我不想花时间下载其余页面。
我的用例是一个IRC机器人的页面标题缠结。
奖励问题:
有什么原因导致Jsoup.connect(theURL).timeout(3000).get();
在大型文件上不超时?最终,如果有人粘贴了永无止境的音频流或大型ISO之类的东西(可以通过在其他线程中获取URL标题(或使用Scala actor并在那里进行超时)来解决),则导致bot发出ping命令。当我认为timeout()
应该完成相同的最终结果时,对于一个非常简单的机器人来说似乎有点过头了。
最佳答案
现在,您可以使用maxBodySize()方法在版本1.7.2中限制最大主体大小。
http://jsoup.org/apidocs/org/jsoup/Connection.Request.html#maxBodySize()
默认情况下限制为1MB,这将防止内存泄漏。
关于jsoup - 如何使用jsoup限制下载大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11511614/