我使用以下行加载文档
Document doc = Jsoup.connect("http://www.some.site.with.lotsof.images/")
.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(); // So Slow (~10 Seconds)
Elements lyricList = doc.getElementsByClass("some-class");
我只需要图像的src。所以我只需要加载普通的html文本。
由于从网址加载图片,这条线是否会变慢?
我的意思是Jsoup.connect()等待整个页面与图像一起加载吗?
答案 0 :(得分:1)
Jsoup
连接可能会变慢:
我一直在抓数千页,而上述三个(特别是第三个)是减速Jsoup.connect()
的最可能的问题。在您的情况下,我相信您尝试连接的网络服务器会降低您的连接速度,因为Jsoup
不会等待图片加载,它会为您提供最初的html
来自服务器的响应是。
答案 1 :(得分:0)
与其使用Jsoup
进行提取和解析,不如尝试结合OkHttp
进行提取和Jsoup
进行解析
OkHttpClient okHttp = new OkHttpClient();
Request request = new Request.Builder().url("https://example.com").get().build();
Document doc = Jsoup.parse(okHttp.newCall(request).execute().body().string());
这对我来说有很大的不同,这是我运行的简单基准测试的平均结果:
okHttp:283ms
Jsoup:476ms