如何从java程序中的网站获取HTML代码?

时间:2015-02-22 05:16:48

标签: java html client client-side

我正试图从我的java项目中的网站获取html代码。我能够做到这一点,但通过一些探索,我发现它永远不会加载网站的客户端(不是100%确定会有什么区别),我不确定网站是否从未运行其javascript代码可能会添加我正在寻找的其余html代码,但这就是我认为正在发生的事情。任何帮助将不胜感激!

编辑 - 这里最终为我工作的代码:

public class GetHtml {

    public static WebDriver driver = new FirefoxDriver();

    public static String get() throws Exception {

        //Connect to the website
        driver.get("webiste");


        // Sleep for 5 seconds so page can load
        long end = System.currentTimeMillis() + 5000;
        while (System.currentTimeMillis() < end) {
        }

        //Get userlist
        List<WebElement> users=driver.findElements(By.className("userlist"));

        String s = "";
        for (WebElement w : users) {
            s += (w.getText());
        }

        return s;

    }
}

这将打开&#34;网站&#34;在firefox Web浏览器中,等待它加载,然后找到这个带有类名&#34; userlist&#34;的html元素。并返回一个字符串,其中包含当前用户列表中所有用户的名称。

2 个答案:

答案 0 :(得分:1)

如果内容是使用javascript或其他请求动态生成的,则一种方法是使用selenium浏览器自动化框架:https://code.google.com/p/selenium/wiki/GettingStarted

从页面获取所有元素的简单示例:

WebDriver driver = new FirefoxDriver();
driver.get("http://www.example.com");

List<WebElement> el = driver.findElements(By.cssSelector("*"));

答案 1 :(得分:0)

jsoup库在其HTML抓取和解析任务中提取URL。

Document doc = Jsoup.connect("http://en.wikipedia.org/").get();