製品に関する苦情を探すために定期的に苦情掲示板サイトをスクレイピングするアラート システムを作成しようとしています。私は同じためにJsoupを使用しています。以下は、私にエラーを与えるコードフラグメントです。
doc = Jsoup.connect(finalUrl).timeout(10 * 1000).get();
これは私にエラーを与えます
java.net.SocketException: Unexpected end of file from server
ブラウザーに同じ finalUrl 文字列をコピーして貼り付けると、機能します。次に、簡単なURL接続を試しました
BufferedReader br = null;
try {
URL a = new URL(finalUrl);
URLConnection conn = a.openConnection();
// open the stream and put it into BufferedReader
br = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
doc = Jsoup.parse(br.toString());
} catch (IOException e) {
e.printStackTrace();
}
しかし、結局のところ、接続自体が null を返しています (br は null)。問題は、同じ文字列をコピーしてブラウザに貼り付けると、サイトがエラーなしで開くのはなぜですか?
完全なスタック トレースは次のとおりです。
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:774)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:771)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at ComplaintsBoardScraper.main(ComplaintsBoardScraper.java:46)