私は現在、sourceforge.comをスクレイプし、Javaで記述されたオープンソースプロジェクトのリポジトリからtarballのリンクを取得するプログラムに取り組んでいます。
最初にホームページで空の検索コマンドを実行します。これにより、左側にフィルターが設定されたsourceforge.netのプロジェクトが一覧表示されます。次に、「java」プログラミング言語でフィルタリングし、各カテゴリ(プロジェクトの合計10カテゴリ)を参照して、各カテゴリの最初の25プロジェクトのリンクを取得します。したがって、250のプロジェクト名とそのWebアドレスを持つハッシュマップができました。さらに進んで、これらの各リンクに移動し、各ページに「コードの参照」リンクを表示します。このページには「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