2

JSoupを使用してURLに接続しようとしています。

次のコードを使用すると

Jsoup.connect("http://www.example.com/").get();
Jsoup.connect("http://www.example.com/example.html").get();

最初の呼び出しは成功し、2番目の呼び出しは例外を発生させます。

Exception in thread "main" java.lang.IllegalArgumentException: Malformed URL: http://www.example.com/example.html
  at org.jsoup.helper.HttpConnection.url(HttpConnection.java:55)
  at org.jsoup.helper.HttpConnection.connect(HttpConnection.java:27)
  at org.jsoup.Jsoup.connect(Jsoup.java:73)
  at webscraper.JsoupTest.main(JsoupTest.java:259)
Caused by: java.net.MalformedURLException: no protocol: http://www.example.com/example.html
  at java.net.URL.<init>(URL.java:567)
  at java.net.URL.<init>(URL.java:464)
  at java.net.URL.<init>(URL.java:413)
  at org.jsoup.helper.HttpConnection.url(HttpConnection.java:53)
  ... 3 more

URLの「.html」と関係があると思います。

JSoupを使用してURLに接続するにはどうすればよいですか?

4

2 に答える 2

2

.htmlとは関係ありません。2番目のURLに空白のプレフィックスがあります。空白スペースを削除してください、それは私の側でうまくいきます。

このツールを使用して、行コードのasiiを16進数に個別に変換できます。2番目のURLには、16の位置に冗長文字「1f」があります。

于 2013-02-20T15:43:28.127 に答える
0

これは、URLにダッシュをエンコードする必要があるためだと思います。これを試して:

String url = java.net.URLEncoder.encode("http://www.example.com/example.html", "UTF-8");
Jsoup.connect(url).get();

Doc:http ://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html

于 2013-02-20T15:36:21.660 に答える