java - HtmlUnit AJAX 响应是部分 HTML。解析失败

标签 java selenium web-scraping htmlunit

HtmlUnit 中 AJAX 响应的响应是一个单独的 div,其中包含一个数据表。

响应还包含一个小的 JS 脚本。

问题是 HtmlUnit 试图将响应解析为完整的 HTML。因此,它期望该代码片段具有所有 JS 库,例如 jQuery。

有没有办法在触发 AJAX 的父页面上下文中解析代码片段?

或者,如果我只收到纯文本的响应也可以。但是,请求必须在 session 内,并且所有 Html header 完好无损。

最佳答案

我猜 AJAX url 不能用于 getPage。相反,我加载了外部页面一次,并触发了该页面上的脚本,该脚本将 AJAX 响应加载到 div 中。

String jsCommand = "$('#results_box').load( '"+ pageLink +"',"+ formdata +");";
parentPage.executeJavaScript(jsCommand);

关于java - HtmlUnit AJAX 响应是部分 HTML。解析失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39669594/

相关文章:

java - 证明递归算法的时间复杂度

java - 具有 2 个参数的静音命令 (ArrayIndexOutOfBoundsException)

java - 为什么我在 Intellij 上编辑配置时看到无法解析主方法上的符号?

java - 在处理数据之前强制 JDialog 可见?

python - Selenium/Python2.7 查找具有相似 src 的元素?

firefox - 如何使用 Selenium WebDriver 读取 DIV 元素的 id 值?

python - 如何使用 Python + Selenium 从警告框中读取文本

java - 如何修复: HtmlUnit GetElementById Returns Null

python - 如何使用 beautifulsoup 和 selenium 在 Python Scraping 中识别类名或 id

python - 将Python列表项逐行插入MySQL表中