带空格的JSoup Java URL(双重编码错误)

时间:2017-03-02 00:01:32

标签: java url jsoup

感谢目前为止的帮助。

我的第一个问题是         'Document doc = Jsoup.connect(URL).get();'在此操作中通常会发生什么编码和解码。例如,我可以给它utf-8或utf-16(使用最新的JSoup库)。

我的第二个问题是以下网址:

      String url = "http://www.chestertons.com/property-to-buy/search-results/properties-in-london-england-to-buy/b-t-llondon, england/?pagesize=60"

如果你滚动在英格兰之前有一个空格,我尝试将空间编码为UTF-8,但Jsoup解析器对URL进行双重编码,我需要这样做,因为Jsoup根本不喜欢空格。

完整的代码是:

     Document doc = Jsoup.connect(URL).userAgent("Chrome/41.0.2228.0 "
                + "(Windows NT 6.1)"
                + "AppleWebKit/537.36 (KHTML, like Gecko) Mozilla/5.0 "
                + "Safari/537.36").timeout(14000).followRedirects(false).
                ignoreContentType(true).get();

我从控制台得到的错误是:

     SEVERE: IO exception from crawling 
    org.jsoup.HttpStatusException: HTTP error fetching URL. Status=404, URL=http://www.chestertons.com/property-to-buy/search-results/properties-in-london-england-to-buy/b-t-llondon%252C%2520england/?pagesize=60

对此问题的任何帮助或见解将不胜感激

1 个答案:

答案 0 :(得分:0)

我设法找到了正确的措辞,并通过其他帖子判断它不是“eindeutig”。

这是我的工作:

     Document doc;
        doc = Jsoup.parse(new URL(getUrl()).openStream(),  "ISO-8859-1", getUrl());

现在我唯一的问题是如何通过使用parse来避免重定向并忽略内容类型(可能)。这是我能看到解决问题的唯一方法。