我正试图从我的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元素。并返回一个字符串,其中包含当前用户列表中所有用户的名称。
答案 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();