进行网络抓取时java.net.SocketTimeoutException错误

问题描述

| 我目前正在开发一个程序,该程序可以通过sourceforge.com抓取并从用Java编写的开源项目的存储库中检索tarball的链接。 最初,我在首页中触发了一个空的搜索命令,该命令列出了sourceforge.net中的项目,其中的过滤器位于左侧。然后,我使用“ java”编程语言进行过滤,然后浏览每个类别(总共10个项目类别),并检索每个类别中前25个项目的链接。因此,现在我有一个具有250个项目名称及其网址的Hashmap。 进一步讲,我进入每个链接,并在其每个页面中获得“浏览代码链接。该页面具有“下载TARball”的链接。 当我尝试连接到其他页面并从主页更深入时,我在运行时收到以下错误(该错误在执行期间随机发生) 线程\“ main \” java.net.socketTimeoutException中的异常:读取超时     在java.net.socketInputStream.socketRead0(本地方法) 我试图给每个“ Jsoup.connect \”请求之间3分钟的等待时间。但是错误仍然存​​在。 我不知道为什么会这样以及如何解决这个问题。任何建议,想法都欢迎。 下面提供了链接示例流: 1.主页 2.触发空搜索 3.按Java和移动类别过滤 4.过滤后的第一个项目 5.浏览项目中的链接:http://wurfl.cvs.sourceforge.net/wurfl/ 6.最终的Tarball链接:http://wurfl.cvs.sourceforge.net/viewvc/wurfl/?view=tar     

解决方法

  我不知道为什么会这样以及如何解决这个问题。任何建议,想法都欢迎。 两种可能性: 服务器暂时过载,损坏,无论如何。 服务器正在实施某种技术手段来尝试防止您的Web抓取。 您是否检查过要执行的操作是否符合SourceForge服务条款?     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...