如何使用Jsoup将url与java中的端口号连接?

时间:2017-07-15 14:47:48

标签: java jsoup

我正在尝试在网址中获取HTML(。

testbranch

我通过Java(Jsoup): How to parse http://host:port做了userAgent但是它不起作用。

我该如何连接该网址?

2 个答案:

答案 0 :(得分:0)

您收到错误,因为Cloudflare DDoS保护下的此URL。如果您在浏览器中打开此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一起使用的URL。为了执行javascript,你将不得不使用像selenium webdriver或替代框架这样的东西。

答案 1 :(得分:0)

JSoup允许您连接到URL并根据网站的HTML / Javascript内容解析数据。根据您的代码:Document返回一个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类解析Document中的元素:

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()。