Java-JSoup-HTTP获取URL时出错。状态=400

Java-JSoup-HTTP获取URL时出错。状态=400,java,jsoup,screen-scraping,http-status-code-400,Java,Jsoup,Screen Scraping,Http Status Code 400,当通过不同的查询从duckduckgo.com获得结果时,经过20-30次迭代后,我得到了以下异常: Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=400, URL=https://duckduckgo.com/html/?q= Hermann_William_Goering at org.jsoup.helper.HttpConnection$Response

当通过不同的查询从duckduckgo.com获得结果时,经过20-30次迭代后,我得到了以下异常:

Exception in thread "main" org.jsoup.HttpStatusException: HTTP error fetching URL. Status=400, URL=https://duckduckgo.com/html/?q=  Hermann_William_Goering
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:682)
at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:629)
at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:261)
at org.jsoup.helper.HttpConnection.get(HttpConnection.java:250)
at WebContextExtractor.DDGresultsScraping(WebContextExtractor.java:378)
at WebContextExtractor.main(WebContextExtractor.java:521)
我不知道是什么问题,如果我尝试在谷歌搜索上手动访问该链接,我可以毫无问题地访问该链接

使用以下简单代码尝试按页面获取文档时出错:

Connection conn = Jsoup.connect(DUCKDUCKGO_SEARCH_URL + query)
            .userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
                    + "(KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"); 

Document doc = conn.get(); <------ here exception
Connection conn=Jsoup.connect(DUCKDUCKGO\u搜索\u URL+查询)
.userAgent(“Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36”
+“(KHTML,像壁虎一样)Chrome/60.0.3112.113 Safari/537.36”);

Document doc=conn.get();Http 400表示请求的格式不正确。因此,您可以将
try catch
添加到此行
Document doc=conn.get()
,并在
catch
块中打印
query
的值,以查看哪种
query
会导致400个错误我已经这样做了,查询是“Hermann\u William\u Goering”。不过,这似乎并没有出现错误。单词前有两个空格,但在另一个查询中它们不是问题。请尝试对查询进行URL编码。空格应该是%20,才能100%正确。你对这种情况有答案吗?