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