जब मुझे Jsoup का उपयोग करके बहुत सारे HTML दस्तावेज़ों को पार्स करने का प्रयास किया जाता है तो मुझे सॉकेट टाइमआउट अपवाद मिलता है।
उदाहरण के लिए, मुझे लिंक की एक सूची मिली:
<a href="www.domain.com/url1.html">link1</a>
<a href="www.domain.com/url2.html">link2</a>
<a href="www.domain.com/url3.html">link3</a>
<a href="www.domain.com/url4.html">link4</a>
प्रत्येक लिंक के लिए, मैं उन पृष्ठों में जानकारी के अन्य टुकड़े प्राप्त करने के लिए URL (href विशेषता से) से जुड़े दस्तावेज़ को पार्स करता हूं।
तो मैं सोच सकता हूं कि इसमें बहुत समय लगता है, लेकिन इस अपवाद को कैसे बंद करें?
यहाँ पूरे स्टैक ट्रेस है:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source)
at sun.net.www.http.HttpClient.parseHTTP(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.HttpURLConnection.getResponseCode(Unknown Source)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:381)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:364)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:143)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:132)
at app.ForumCrawler.crawl(ForumCrawler.java:50)
at Main.main(Main.java:15)
धन्यवाद दोस्तों!
संपादित करें: हम ... क्षमा करें, बस समाधान मिला:
Jsoup.connect(url).timeout(0).get();
आशा है कि किसी और के लिए उपयोगी हो सकता है ... :)
timeout(0)
Jsoup url को बार-बार कनेक्ट करेगा जब तक कि यह कनेक्ट नहीं हो जाता।