服务器返回URL

时间:2015-11-21 14:46:50

标签: java url

我可以访问网站kissmanga.com但我无法通过程序访问它。我修复了之前收到的错误403,但现在我得到了错误503。

    URL url = new URL("http://kissmanga.com/");
    System.setProperty("http.agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.29 Safari/537.36"); 
    BufferedReader bf = new BufferedReader(new InputStreamReader(url.openStream()));

    String str;
    while((str = bf.readLine()) != null){
        System.out.println(str);
    }


 Error that I get:
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 503 for URL: http://kissmanga.com/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at KissManga.main(KissManga.java:10)

好的,这段代码适用于一个小问题。我没有得到完整的HTML,但只有2/3。

    HtmlUnitDriver driver = new HtmlUnitDriver();
    driver.get("http://kissmanga.com/");
    Thread.sleep(5000);
    System.out.println(driver.getPageSource());
    driver.quit();

3 个答案:

答案 0 :(得分:4)

您不会以这种方式获取任何数据,因为网站会检查是否启用了Javascript。

您应该尝试可以模拟浏览器行为的工具。例如,在Selenium Htmlunit Driver的帮助下,您可以获得页面来源:

    HtmlUnitDriver drv = new HtmlUnitDriver(BrowserVersion.FIREFOX_38);
    drv.setJavascriptEnabled(true);
    drv.get("http://kissmanga.com/");
    drv.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    System.out.println(drv.getPageSource());

答案 1 :(得分:0)

错误503表示服务器可访问,但返回错误状态代码

503用于“服务不可用”

可能由于某种原因暂时在服务器或服务器上发生问题而拒绝了您的请求

答案 2 :(得分:0)

这是因为该网站似乎使用了Cloudflare。 您可以告诉您何时访问该网站,并等待我们检查您的浏览器

503 = HTTP 503服务不可用

这是Cloudflare告诉你要坚持下去,同时确保你不是DDOS。

您需要对解析器进行编码以检查正文并等待重定向,或者自己手动访问它。