2017-07-15 72 views
-2

我想在URL(獲得HTML。如何使用Jsoup將url與java中的端口號連接起來?

Document doc = Jsoup.connect("URL").userAgent("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36").timeout(111110).followRedirects(true).execute().parse(); 
System.out.println(doc.text()); 

我沒有通過Java(Jsoup): How to parse http://host:port UserAgent的,但它不能正常工作。

我應該如何連接該URL?

+2

當你在寫:「但它不工作」你是什麼意思?你有錯誤嗎?如果是,什麼錯誤? –

回答

0

你得到的錯誤,因爲這個URL在Cloudflare DDoS保護下,如果你在瀏覽器中打開這個URL,你會看到你首先得到了503的響應代碼,然後你將被重定向到目標URL,如果你願意,你可以設置ignoreHttpErrors爲true,將會看到你的代碼。

~ ➭ http http://www.kg348.com:8880/play 
HTTP/1.1 503 Service Temporarily Unavailable 
Cache-Control: no-cache 
Connection: close 
Content-Type: text/html; charset=UTF-8 
Date: Sat, 15 Jul 2017 14:58:52 GMT 
Refresh: 8;URL=/cdn-cgi/l/chk_jschl?pass=sdfsdfsdf.127-dsfsdfd 
Server: cloudflare-nginx 
Set-Cookie: __cfduid=xxxx; expires=Sun, 15-Jul-18 14:58:52 GMT; path=/; domain=.kg348.com; HttpOnly 
Transfer-Encoding: chunked 
X-Frame-Options: SAMEORIGIN 

看起來像這個重定向已經完成了JavaScript,但Jsoup是一個解析器,它不包括一個JavaScript執行引擎,所以我不知道你能夠獲得目標網址的HTML代碼只有Jsoup。爲了執行JavaScript,你將不得不使用像selenium webdriver或其他框架。

+0

謝謝。我使用wget和cookie選項。然後用Jsoup解析html。 –

0

JSoup允許您連接到URL並根據網站的HTML/Javascript內容解析數據。根據您的代碼:文檔返回一個html文檔。在嘗試下面的代碼之前,請確保您能夠連接到網站(請注意我能夠查看網站)。因此,修改你的代碼如下:

String url="http://www.kg348.com:8880/play"; // your webpage 
Document parseURL = Jsoup.connect(url).get(); //will connect and fetch you the HTML content in URL 

下一頁使用分析類的元素在文檔中的元素:

Elements ele=parseURL.select("<the html div you want to extract>"); 
for (Element element : ele) { //using foreach to iterate over every element inside your div or select method 
      System.out.println(element.text()); 
} 

希望這將有助於:)


編輯: 從文檔中刪除了timeout()。

+0

謝謝你!但是「Document parseURL = Jsoup.connect(url).timeout(111110).get()」這不起作用 –

+0

您確定要解析的網站允許您的應用訪問嗎?你也可以嘗試離開代碼的超時部分? – Rishu

相關問題