ここで深刻な懸念があります。スタックオーバーフローや他の多くのサイトをすべて検索しました。彼らが同じ解決策を提供するすべての場所で、私はそれらすべてを試しましたが、私はこの問題を解決できません。
私は次のコードを持っています、
Document doc = Jsoup.connect(url).timeout(30000).get();
ここでは Jsoup ライブラリを使用しており、得られる結果は実際のページ ソースと同じではありませんが、ページを右クリックして -> ページ ソースを表示します。上記のコード行で取得した結果には、多くの部分が欠けています。Googleでいくつかのサイトを検索した後、私はこの方法を見ました、
URL url = new URL(webPage);
URLConnection urlConnection = url.openConnection();
urlConnection.setConnectTimeout(10000);
urlConnection.setReadTimeout(10000);
InputStream is = urlConnection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
int numCharsRead;
char[] charArray = new char[1024];
StringBuffer sb = new StringBuffer();
while ((numCharsRead = isr.read(charArray)) > 0) {
sb.append(charArray, 0, numCharsRead);
}
String result = sb.toString();
System.out.println(result);
しかし運がない。この問題をインターネットで検索しているときに、Web ページのページ ソースをダウンロードするときに、Web ページの適切な charSet とエンコーディング タイプを設定する必要があると述べている多くのサイトを見ました。しかし、コードからこれらのことを動的に知るにはどうすればよいですか?? そのためのJavaのクラスはありますか。私もクローラー4jを少し試しましたが、あまり効果がありませんでした。みんな助けてください。m は、この問題に 1 か月以上悩まされています。私はできる限りの方法を試しました。最後の希望はいつも助けてくれたスタックオーバーフローの神々です!!