问题描述
|
我目前正在开发一个程序,该程序可以通过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服务条款?