gpt4 book ai didi

java - HtmlUnit获取页面源码实现显示Exception

转载 作者:行者123 更新时间:2023-12-01 14:42:05 25 4
gpt4 key购买 nike

我尝试从 URL 获取动态页面。我在 Java 工作。我已经使用 Selenium 完成了此操作,但这需要很多时间。因为调用 Selenium 的驱动程序需要时间。这就是我转向 HtmlUnit 的原因,因为它是 GUILess 浏览器。但我的 HtmlUnit 实现显示了一些异常。

问题:-

  1. 如何纠正我的 HtmlUnit 实现。
  2. Selenium 生成的页面与 HtmlUnit 生成的页面相似吗? [ 两者都是动态的还是非动态的? ]

我的 Selenium 代码是:-

 public static void main(String[] args) throws IOException {

// Selenium
WebDriver driver = new FirefoxDriver();
driver.get("ANY URL HERE");
String html_content = driver.getPageSource();
driver.close();

// Jsoup makes DOM here by parsing HTML content
Document doc = Jsoup.parse(html_content);

// OPERATIONS USING DOM TREE

}

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;

public class HtmlUnit {

public static void main(String[] args) throws Exception {
//HtmlUnit htmlUnit = new HtmlUnit();
//htmlUnit.homePage();
WebClient webClient = new WebClient();
HtmlPage currentPage = webClient.getPage("http://www.jabong.com/women/clothing/womens-tops/?source=women-leftnav");
String textSource = currentPage.asText();
System.out.println(textSource);
}
}

显示异常:-

enter image description here

最佳答案

1: How can I correct my HtmlUnit implaementation.

查看堆栈跟踪,似乎表明 JavaScript 引擎执行了一些试图访问 Javascript“未定义”值上的属性的 JavaScript。如果它是正确的,那么这将是您正在测试的 javascript 中的错误,而不是 HtmlUnit 代码中的错误。

2: Is the page produced by Selenium is simiar to the page produced by HtmlUnit?

这没有道理。 Selenium 或 HtmlUnit 都不会“生成”页面。该页面是由您正在测试的服务代码生成的。

如果您询问 HtmlUnit 是否能够处理嵌入了 Javascript 的代码...堆栈跟踪中有明确的证据表明它正在尝试执行 Javascript。

关于java - HtmlUnit获取页面源码实现显示Exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com