2017-07-15 15 views
-2

私は(URLでHTMLを取得しようとしています。URLをJsoupで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にリダイレクトされます。あなたのコードでそれを見ることができます。

~ ➭ 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実行エンジンは含まれていないため、ターゲットURLのHTMLコードを取得できるかどうかはわかりませんJsoupでのみ。 javascriptを実行するには、セレンのwebdriverや代替フレームワークのようなものを使用する必要があります。

+0

ありがとうございます。私はcookieオプション付きのwgetを使用しました。その後、Jsoupで解析されたhtml。 –

0

JSoupを使用すると、URLに接続して、WebサイトのHTML/Javascriptコンテンツに基づいてデータを解析することができます。あなたのコードに基づいて:文書はHTML文書を返します。以下のコードを試してみる前に、のウェブサイトに接続できることを確認してください(私はウェブサイトを閲覧できました)。だから、次のようにあなたのコードを変更します。これは:)


が編集するのに役立ちます

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()); 
} 

希望:

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 

次の要素のクラスを使用してドキュメント内の要素を解析 ドキュメントからtimeout()を削除しました。

+0

ありがとう!しかし、 "Document parseURL = Jsoup.connect(url).timeout(111110).get()"は動作しません。 –

+0

あなたが解析しようとしているWebサイトからあなたのアプリケーションにアクセスすることを許可していますか?また、コードのタイムアウト部分を残すこともできますか? – Rishu

関連する問題