2

我的应用程序需要一些网络抓取功能。我有下载所有数据的 URL 对象。但是我需要抓取很多页面并创建很多 URL 对象,所以我打开了很多连接。如何优化它,这样我就可以有一个连接并且只能用它导航到其他页面?

干杯

4

2 回答 2

0

据我所知,URLConnection每个 URL 都必须有一个不同的 URL(这是有道理的,因为底层网络连接也必须改变)。我严重怀疑创建这个对象是你的瓶颈;我怀疑这是网络时间,但没有配置文件很难确定。

对于适量的页面,我会考虑一个工作队列(比如使用ExecutorService)。对于大量页面,我什至可能会研究 Java 版本的Map/Reduce

编辑:为了使 Map/Reduce 比简单的工作队列更好,您需要多台计算机来进行抓取。

于 2010-04-29T19:01:45.673 回答
0

你可以使用Apache HTTP 组件,它有很多特性,包括支持并发访问的连接管理器

于 2010-04-29T19:48:54.687 回答