首先我想提一下,我是HtmlUnit的新手。我试图获取一个网页,然后解析其内容。网址:https://secure.fattal.co.il/BE_Results.aspx?Lang=heb
但是我最终得到了下面的javascript内容:
<html><head><meta charset="utf-8"></head><body><script>window.rbzns = {fiftyeightkb: 43200000, days_in_week : 1};</script><script src="//d1a702rd0dylue.cloudfront.net/js/sugarman/v7/flat.js"></script><script>rbzns.challdomain=".fattal.co.il"; rbzns.ctrbg="NMdHaCamRWvRkFxSyeq856yW5EEmzuHN32UH9RoO3YoeT4HIU++m8k1QIpK0EQqM2RF/9vvBg5S4A3I18QPa4mRMEb+S4Fh3ZVljis2xiCe2tYg/zlUJMN5kVMgLQKw/mbEk8L77gcYBrz56tLIPxg==";rbzns.rbzreqid="fc167e1a3134363136353639343033970795be87d166"; winsocks(true);</script></body></html>
注意:我开始使用jsoup解析器获取URL,但是响应是相同的javascript。
在搜索了javascript内容之后,我意识到我应该使用像HtmlUnit这样的无头浏览器。
但是,即使使用 HtmlUnit 来获取页面,Java 脚本内容也会再次返回。
以下是其中的一小部分:
String url = "https://secure.fattal.co.il/BE_Results.aspx?Lang=heb&In=2016-08-07&Out=2016-08-11&Region=2&Rooms=1&Ad1=2&Ch1=0&Inf1=0"; // hard coded just for example
webClient = new WebClient();
// Get the first page
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setRedirectEnabled(true);
webClient.setJavaScriptTimeout(100000);
webClient.waitForBackgroundJavaScript(100000);
page = webClient.getPage(url);
System.out.println(page.getWebResponse().getContentAsString());
我到处寻找解决办法,但没有任何具体的答案。
任何帮助都将不胜感激
好吧,我明白了。
我发布的javascript源代码:
<html><head><meta charset="utf-8"></head><body><script>window.rbzns = {fiftyeightkb: 43200000, days_in_week : 1};</script><script src="//d1a702rd0dylue.cloudfront.net/js/sugarman/v7/flat.js"></script><script>rbzns.challdomain=".fattal.co.il"; rbzns.ctrbg="NMdHaCamRWvRkFxSyeq856yW5EEmzuHN32UH9RoO3YoeT4HIU++m8k1QIpK0EQqM2RF/9vvBg5S4A3I18QPa4mRMEb+S4Fh3ZVljis2xiCe2tYg/zlUJMN5kVMgLQKw/mbEk8L77gcYBrz56tLIPxg==";rbzns.rbzreqid="fc167e1a3134363136353639343033970795be87d166"; winsocks(true);</script></body></html>
是一个已知的脚本,用于检查请求是否来自浏览器,而不是某种机器人或爬虫。由于HtmlUnit支持(部分)JavaScript,我已经更改了我的代码来使用Selenium.webdriverphantomJS,现在它的工作就像一个魅力。
我需要使用htmlUnit webDriver在不同页面中下载不同的文件。我在页面上循环,对于每个页面,我都单击输入字段以触发下载。对于第一次下载,我单击HtmlInputElement(提交按钮),它会将文件还给我。之后,HtmlPage变成了未预期的页面。检查UnexcpetedPage中的Web响应,我仍然发现文件已经下载。如何解决? 代码:[……]
关于使用 Iframe 进行跨域访问 localstorage 的问题。 A 页面:http://127.0.0.1:5173/localstorage. 新窗口打开进行 localstorage.setItem("token", "test") B页面:http://localhost:7456/localstorage.html 中想要访问 A 页面的 localstorage. 方法尝试使用
我正在使用HtmlUnit加载一个满是JavaScript的网页。可以很好地执行JavaScript。 但是,当我单击调用Ajax调用的特定表单上的按钮时,即使调用本身完成了,内容(结果)也不会出现在页面上(即使在真正的浏览器中出现了)。
我在使用htmlUnit WebDriver解析HTML页面时遇到了一些问题。我没有任何例外。我的代码如下所示: 在上面的XML页面源码中,我可以找到我的名字。所以,我似乎正确地记录了它。
当我使用关于我们的
问题内容: 我目前正在使用HtmlUnit开发一些测试。它正在加载一个包含braintree.js(其表单加密库)的页面。我跑了一堆,但我被困在所谓的加密货币上。有问题的JS是: HtmlUnit抛出: 我想HtmlUnit不包含加密。我自己可以包括一个密码库吗? 问题答案: 根据您的评论,我不得不告诉您HtmlUnit在涉及JavaScript时令人不安。它将抱怨很多关于变量未定义和未知函数等问