我正在做一些网络刮刮,在java中使用jsoup以广度第一的方式。换句话说,对于每个页面,我提取所有链接并将它们添加到一个队列中进行抓取,然后在while循环中删除并刮掉urls,当队列为空时停止。我要做的是,在将链接添加到用于抓取的边界/队列之前,根据目标文档的大小对它们进行排序,以便首先对较小的文档进行抓取。在实际下载整个文档之前,是否有方法从url获取给定文档的大小?例如,在调用connection.get()加载整个文档之前,是否有一种方法可以从连接中获取http内容长度?谢谢。
发布于 2018-05-23 12:57:07
您可以使用http方法获取内容长度,而无需下载请求体。使用jsoup时,这看起来可能如下所示:
Response resp = Jsoup.connect(url).method(Method.HEAD).execute();
String length = resp.header("Content-Length");更多关于HEAD方法的信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/HEAD
https://stackoverflow.com/questions/50448918
复制相似问题