在我的項目中,它解析HTML頁面,然後使用DOM樹進行不同的操作,就像比較兩個URLS的模板一樣。如何使用Java中的JSOUP獲取DOM樹中任何網頁的動態內容
爲此,我正在使用JSOUP。
但它無法加載DOM樹中的動態內容。
你能告訴我如何在Java中使用JSOUP加載動態內容,或者你能告訴我任何其他的方法嗎?
編輯編號1
由於given link顯示,它的工作原理採用PhantomJS在Java中和Zombie.js。你能告訴我怎麼做到這一點?
編輯號2
我第一次嘗試使用硒來獲得動態頁面,代碼如下所示,
public static void main(String[] args) throws IOException {
// Selenium
WebDriver driver = new FirefoxDriver();
driver.get("ANY URL HERE");
String html_content = driver.getPageSource();
driver.get("ANOTHER URL HERE");
String html_content1 = driver.getPageSource();
driver.close();
// Jsoup makes DOM here by parsing HTML content
Document doc1 = Jsoup.parse(html_content);
Document doc2 = Jsoup.parse(html_content1);
// OPERATIONS USING DOM TREE
}
但是,這需要大量的時間也優化了。現在按照您的指示,我轉移到HtmlUnit。 但我無法制作代碼,即將動態頁面源代碼轉換爲String,然後使用此String進一步使用Jsoup進行配對,幫助我使用HtmlUnit編寫該代碼。使用的HtmlUnit
代碼: -
package XXX.YYY.ZZZ.Template_Matching;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import org.junit.Assert;
import org.junit.Test;
/**
*
* @author jhamb
*/
public class HtmlUnit {
@Test
public void homePage() throws Exception {
final WebClient webClient = new WebClient();
final HtmlPage page = webClient.getPage("http://www.jabong.com/Yepme-3-4Th-Sleeve-Printed-Blue-Top-Mksp-191481.html");
Document ht = page.getOwnerDocument();
System.out.println(ht);
webClient.closeAllWindows();
}
public static void main(String[] args) throws Exception {
HtmlUnit htmlUnit = new HtmlUnit();
htmlUnit.homePage();
}
}
你是如何解決這個問題的?你能得到你想要的嗎? – 2015-12-01 20:57:49
爲了獲得動態內容,我使用了Selenium和GhostDriver。 – devsda 2015-12-08 10:39:09
是的,我完成了這個項目。 – devsda 2015-12-08 10:39:28