簡體   English   中英

網絡抓取時出現 java.net.SocketTimeoutException 錯誤

[英]java.net.SocketTimeoutException error while web-scraping

我目前正在開發一個程序,該程序通過 sourceforge.com 抓取並從用 java 編寫的開源項目的存儲庫中檢索 tarball 的鏈接。

我最初在主頁中觸發了一個空的搜索命令,它列出了 sourceforge.net 中的項目,左側有過濾器。 然后我按“java”編程語言過濾,然后瀏覽每個類別(總共 10 個項目類別)並檢索每個類別中前 25 個項目的鏈接。 因此,現在我有一個 Hashmap 有 250 個項目名稱和它的 web 地址。 更進一步,我將 go 放入這些鏈接中的每一個,並在其每個頁面中獲取“瀏覽代碼”鏈接。 此頁面有“下載 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

我不確定為什么會發生這種情況以及如何解決這個問題。 任何建議,想法都是最受歡迎的。

兩種可能:

  • 服務器暫時超載,損壞,等等。

  • 服務器正在實施某種技術手段來試圖阻止你 web 抓取。

您是否檢查過您嘗試執行的操作是否符合SourceForge 服務條款

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM