如何从 java 程序中的网站获取 HTML 代码?
How to get HTML code from a website in java program?
我正在尝试从我的 java 项目中的网站获取 html 代码。我能够做到这一点,但是通过一些探索我发现它永远不会加载网站的客户端(不是 100% 确定有什么区别),我不确定该网站是否从未运行过它的 java脚本代码可能会添加我正在寻找的 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;
}
}
这会在 firefox 网络浏览器中打开 "website",等待它加载,然后找到这个 html 元素,名称为 class "userlist" 并且 returns 一个字符串,其中包含用户列表中当前所有用户的名称。
jsoup 库在其 HTML 抓取和解析职责中获取 URL。
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
如果内容是通过 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("*"));
我正在尝试从我的 java 项目中的网站获取 html 代码。我能够做到这一点,但是通过一些探索我发现它永远不会加载网站的客户端(不是 100% 确定有什么区别),我不确定该网站是否从未运行过它的 java脚本代码可能会添加我正在寻找的 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;
}
}
这会在 firefox 网络浏览器中打开 "website",等待它加载,然后找到这个 html 元素,名称为 class "userlist" 并且 returns 一个字符串,其中包含用户列表中当前所有用户的名称。
jsoup 库在其 HTML 抓取和解析职责中获取 URL。
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
如果内容是通过 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("*"));