Jsoup을 사용하여 많은 HTML 문서를 구문 분석하려고 할 때 SocketTimeoutException이 발생합니다.
예를 들어 링크 목록이 있습니다.
<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을 반복해서 연결하게 할 것이라고 생각합니다 .