Tag: htmlunit

HtmlUnit对cookie和windows的疑虑

如果HtmlUnit将cookie存储在内存中,那么Will HtmlUnit会使用cookie响应服务器吗? 当HtmlUnit会话终止时? 当我调用webclient.closeWindow()时它会终止吗? 作为acc。 对于HtmlUnit文档,WebClient代表一个浏览器,所以它是代表多窗口浏览器(如IE7,我们可以在其中打开多个选项卡)或代表单窗口浏览器? 如果它代表一个多窗口浏览器,那么HttpSession是否像真实浏览器一样在该webclient的多个窗口中维护?

Java和HTMLUnit:如何点击提交按钮?

我是Java的新手,需要编写各种java应用程序来进行Web抓取和网页交互。 我开始使用Selenium,但因为它直接与浏览器交互,所以我的使用不实用。 我需要执行以下任务:1。转到特定URL 2.在输入字段中输入邮政编码3.单击“提交”按钮4.解析并保存特定div标签或重新查询页面的结果。 我正在使用HTMLUnit和Eclipse。 我可以通过引用表单然后输入名称来访问网页并在输入中输入post代码。 但是,当我尝试单击提交按钮时,我收到ElementNotFoundException错误。 以下是如何在页面上实现提交按钮的示例: type =“submit”value =“submit”name =“submit”>输入邮政编码 这是我的代码的样子: package htmlunittest; import java.io.IOException; import java.net.URL; import junit.framework.TestCase; import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.Page; import com.gargoylesoftware.htmlunit.RefreshHandler; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.html.HtmlDivision; import com.gargoylesoftware.htmlunit.html.HtmlButtonInput; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlImage; import com.gargoylesoftware.htmlunit.html.HtmlInput; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput; import com.gargoylesoftware.htmlunit.html.HtmlTextInput; public class htmlunittest extends TestCase{ @SuppressWarnings(“deprecation”) public static void main(String[] […]

无法使用Maven依赖项运行Htmlunit应用程序

我通过在pom.xml中添加以下内容添加了Htmlunit Maven依赖项 net.sourceforge.htmlunit htmlunit 2.18 当我尝试运行该应用程序时,我收到以下错误: Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/http/conn/ssl/NoopHostnameVerifier at com.gargoylesoftware.htmlunit.httpclient.HtmlUnitSSLConnectionSocketFactory.buildSSLSocketFactory(HtmlUnitSSLConnectionSocketFactory.java:112) at com.gargoylesoftware.htmlunit.HttpWebConnection.configureHttpsScheme(HttpWebConnection.java:597) at com.gargoylesoftware.htmlunit.HttpWebConnection.createHttpClient(HttpWebConnection.java:532) at com.gargoylesoftware.htmlunit.HttpWebConnection.getHttpClientBuilder(HttpWebConnection.java:494) at com.gargoylesoftware.htmlunit.HttpWebConnection.getResponse(HttpWebConnection.java:158) at com.gargoylesoftware.htmlunit.WebClient.loadWebResponseFromWebConnection(WebClient.java:1321) at com.gargoylesoftware.htmlunit.WebClient.loadWebResponse(WebClient.java:1238) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:346) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:415) at com.gargoylesoftware.htmlunit.WebClient.getPage(WebClient.java:400) 以下是我的pom.xml,因为我的pom.xml非常冗长,我删除了一些部分,如属性,配置文件等。 log4j apache-log4j-extras 1.2.17 io.dropwizard.metrics metrics-core io.dropwizard.metrics metrics-annotation ${dropwizard-metrics.version} io.dropwizard.metrics metrics-ehcache ${dropwizard-metrics.version} io.dropwizard.metrics metrics-graphite io.dropwizard.metrics metrics-healthchecks ${dropwizard-metrics.version} io.dropwizard.metrics metrics-json ${dropwizard-metrics.version} io.dropwizard.metrics metrics-jvm ${dropwizard-metrics.version} […]

访问具有Cloudflare保护的网页

首先,我想道歉,以防我的问题可能没有提供足够的连接或任何重要的事情,我现在正在手机上打字。 所以我正在开发一个项目,要求我在网页中自动执行任务,为了做到这一点,第一步是首先访问页面,但我遇到了一个障碍,我试过搜索和搞清楚无济于事。 我试图访问的网页有CloudFlare的DDoS保护,这意味着在进入页面之前,您的浏览器会被检查几秒钟然后通过。 我正在使用外部库HtmlUnit,它为我提供了我需要的一切,当访问页面时,我收到503 error ,说我无法访问它,相当确定这是阻止它的保护。 现在我的问题是我应该如何绕过它。 有一个.jar我反编译并查看哪个跟我一样去了同一个网站,但这对我来说太难以辨认了。 非常感谢帮助完成这项任务,谢谢。 作为参考,以下是使用CloudFare进行测试的网页示例, www.osbot.org (这不是BTW网站)。 如果你还需要其他任何东西,请告诉我,再次抱歉只有文字,很难在我的手机上打字,我目前没有PC访问权限。 编辑:无法将我的IP列入白名单或与网站所有者联系

超时会抛出什么exception?

HTMLUnit中连接超时引发了什么exception?

如何启用Flash到HTMLUnit?

我正在尝试通过HTMLUnit获取HTML内容。 一切都很顺利,但无法获得那些可见的其实际位于 Flash内容 webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setActiveXNative(true); webClient.getOptions().setAppletEnabled(true); webClient.getOptions().setCssEnabled(true); 在某些地方,我发现有人说HTMLUnit不支持Flash,但这些答案看起来很旧,所以提出这个问题。 有人请帮忙。 谢谢。

获取url时,HtmlUnitDriver会导致问题

我有一个使用Selenium库用Java开发的页面爬虫。 抓取工具通过一个网站启动,该网站通过Javascript 3应用程序启动,这些应用程序在弹出窗口中显示为HTML。 启动2个应用程序时,爬网程序没有问题,但在第3个爬虫程序上,爬网程序永远冻结。 我正在使用的代码类似于 public void applicationSelect() { … //obtain url by parsing tag href attributed … this.driver = new HtmlUnitDriver(BrowserVersion.INTERNET_EXPLORER_8); this.driver.seJavascriptEnabled(true); this.driver.get(url); //the code does not execute after this point for the 3rd app … } 我也试过通过以下代码点击web元素 public void applicationSelect() { … WebElement element = this.driver.findElementByLinkText(“linkText”); element.click(); //the code does not execute after […]

HtmlUnit 2.9 jar执行JavaScript

我正在尝试这段代码: import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.JavaScriptPage; import com.gargoylesoftware.htmlunit.ScriptResult; import com.gargoylesoftware.htmlunit.WebClient; import com.gargoylesoftware.htmlunit.WebRequest; import com.gargoylesoftware.htmlunit.WebResponse; import com.gargoylesoftware.htmlunit.WebWindow; import com.gargoylesoftware.htmlunit.html.HtmlPage; import com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine; import com.gargoylesoftware.htmlunit.javascript.host.html.HTMLScriptElement; import java.net.URL; import java.util.List; public class Example { public static void main(String[] args) throws Exception { WebClient webClient = new WebClient(BrowserVersion.INTERNET_EXPLORER_6); URL url=new URL(“http://www.google.com”); WebRequest request= new WebRequest(url); WebResponse response=new WebResponse(null, request, 6000); webClient.setJavaScriptEnabled(true); […]

Servletfilter在AWS上返回“代理错误”

我已经设置了一个Filter来为我的GWT Web应用程序添加爬虫支持。 我们的想法是捕获包含“ _escaped_fragment_= ”的所有请求,并为爬虫提供快照。 我使用Guice设置了Filter ,如下所示: filter(“/*”).through(CrawlerFilter.class); 以下是CrawlerFilter类的代码(非常感谢Patrick ): @Singleton public class CrawlerFilter implements Filter { private static final Logger logger = Logger.getLogger(CrawlerFilter.class.getName()); /** * Special URL token that gets passed from the crawler to the servlet * filter. This token is used in case there are already existing query * parameters. */ private […]

htmlunit:指定了无效或非法的选择器

我试图用htmlunit模拟登录。 虽然我根据例子编写了我的代码,但我遇到了一个无聊的问题。 以下是我从控制台中获取的一些消息。 runtimeError: message=[An invalid or illegal selector was specified (selector: ‘*,:x’ error: Invalid selector: *:x).] sourceName=[http://user.mofangge.com/Scripts/inc/jquery-1.10.2.js] line=[1640] lineSource=[null] lineOffset=[0] WARNING: Obsolete content type encountered: ‘application/x-javascript’. CSS error: ‘http://user.mofangge.com/Content/Css/Style1/Main.css’ [1:1] Error in style sheet. (Invalid token “\u9518”. Was expecting one of: , , , “”, , , , , , , “.”, “:”, “*”, […]