我正试着写一个网络爬虫。当我浏览一个大页面时,我的arraylist变量无法保存所有数据。它被抛到了异常之下。线程java.lang.StackOverflowError".中的异常" thread -0“
保存这些urls的最佳方法是什么,因为我需要访问那些urls和子urls等等。
我想保存到数据库或写入文件,但这些机制可能会减慢爬虫性能。
发布于 2015-11-19 07:06:46
当我浏览一个大页面时,我的arraylist变量无法保存所有数据。
这不对。
Exception in thread "Thread-0" java.lang.StackOverflowErrorStackOverflowException不是由于ArrayList容量不足(即2^31-1项)而导致的.它是由过多的递归引起的。
可能您没有跟踪您已经访问过的URL,并且遇到了链接周期。
发布于 2015-11-19 05:49:55
理论上,ArrayList容量的极限是Integer.MAX_VALUE。但是,这取决于JVM可用的内存量。如果有足够的堆空间来存储字符串,那么它将存储大量的字符串。
https://stackoverflow.com/questions/33796040
复制相似问题