আমি যখন জসুপ ব্যবহার করে অনেকগুলি 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>
প্রতিটি লিঙ্কের জন্য, আমি এই পৃষ্ঠাগুলিতে অন্যান্য টুকরা তথ্য পেতে ইউআরএল (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)
জসোপ এটি সংযুক্ত না হওয়া পর্যন্ত বার বার ইউআরএলকে সংযুক্ত করবে।