小编Cte*_*h45的帖子

在Htmlunit中处理AJAX请求

我编写了一个程序,用于在单击按钮后从网页中删除源代码.我无法抓住正确的页面,因为我相信正在发送一个AJAX请求,而我不等待这个响应发生.我的代码目前是:

public class Htmlunitscraper { 

  private static String s = "http://cpdocket.cp.cuyahogacounty.us/SheriffSearch/results.aspx?q=searchType%3dSaleDate%26searchString%3d10%2f21%2f2013%26foreclosureType%3d%27NONT%27%2c+%27PAR%27%2c+%27COMM%27%2c+%27TXLN%27";

  public static String scrapeWebsite() throws IOException {

    java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(Level.OFF); 
System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");

    final WebClient webClient = new WebClient();
    final HtmlPage page = webClient.getPage(s);
    final HtmlForm form = page.getForms().get(2);
    final HtmlSubmitInput button = form.getInputByValue(">");
    final HtmlPage page2 = button.click();
    String originalHtml = page2.refresh().getWebResponse().getContentAsString();
    return originalHtml;
  }
}
Run Code Online (Sandbox Code Playgroud)

在引用此链接后,我相信要解决此问题,我可以实现方法"webClient.waitForBackgroundJavaScript(10000)".唯一的问题是我不明白该怎么做,因为每次单击按钮我都会创建一个HtmlPage对象,而不是WebClient对象.我怎样才能使用这种方法来解决问题呢?

java ajax htmlunit

7
推荐指数
2
解决办法
6565
查看次数

使用Java中的扫描程序问题

我正在编写一个程序,需要从输入文本文件中读取数据,并在完成日期时保存变量.我正在使用Htmlunit,并遇到错误:

com.gargoylesoftware.htmlunit.ScriptException: Exception invoking open
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine$HtmlUnitContextAction.run(JavaScriptEngine.java:684)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:602)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:507)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:616)
    at com.gargoylesoftware.htmlunit.javascript.JavaScriptEngine.callFunction(JavaScriptEngine.java:591)
    at com.gargoylesoftware.htmlunit.html.HtmlPage.executeJavaScriptFunctionIfPossible(HtmlPage.java:985)
    at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeEventHandler(EventListenersContainer.java:210)
    at com.gargoylesoftware.htmlunit.javascript.host.EventListenersContainer.executeBubblingListeners(EventListenersContainer.java:230)
    at com.gargoylesoftware.htmlunit.javascript.host.Node.fireEvent(Node.java:804)
    at com.gargoylesoftware.htmlunit.javascript.host.Node.fireEvent(Node.java:738)
    at com.gargoylesoftware.htmlunit.html.HtmlElement$1.run(HtmlElement.java:869)
    at net.sourceforge.htmlunit.corejs.javascript.Context.call(Context.java:602)
    at net.sourceforge.htmlunit.corejs.javascript.ContextFactory.call(ContextFactory.java:507)
    at com.gargoylesoftware.htmlunit.html.HtmlElement.fireEvent(HtmlElement.java:874)
    at com.gargoylesoftware.htmlunit.html.HtmlElement.doClickFireClickEvent(HtmlElement.java:1311)
    at com.gargoylesoftware.htmlunit.html.HtmlElement.click(HtmlElement.java:1253)
    at com.gargoylesoftware.htmlunit.html.HtmlElement.click(HtmlElement.java:1205)
    at com.gargoylesoftware.htmlunit.html.HtmlElement.click(HtmlElement.java:1160)
    at Docketscraper.scrapeWebsite(Docketscraper.java:58)
    at Docketscraper.starter(Docketscraper.java:40)
Run Code Online (Sandbox Code Playgroud)

我的代码是:

  private static String startingMonth;
  private static String startingDay;
  private static String startingYear;
  private static String endingMonth;
  private static String endingDay;
  private static String endingYear;

  public static void starter() throws IOException{
    Scanner sc = new …
Run Code Online (Sandbox Code Playgroud)

java htmlunit

5
推荐指数
1
解决办法
179
查看次数

如何修复IllegalMonitorStateException

我在我的代码中遇到IllegalMonitorStateException,我不知道为什么我收到它以及如何解决它.我当前的代码是,并且try块中发生错误:

  public static String scrapeWebsite() throws IOException {

    final WebClient webClient = new WebClient();
    final HtmlPage page = webClient.getPage(s);
    final HtmlForm form = page.getForms().get(0);
    final HtmlSubmitInput button = form.getInputByValue(">");
    final HtmlPage page2 = button.click();
    try {
    page2.wait(1);
    }
    catch(InterruptedException e)
    {
      System.out.println("error");
    }
    String originalHtml = page2.refresh().getWebResponse().getContentAsString();
    return originalHtml;
  }
}
Run Code Online (Sandbox Code Playgroud)

java error-handling wait

2
推荐指数
1
解决办法
2298
查看次数

大O和嵌套循环

void function(int N){
  for (int i=0; i<N; i++)
    for (int j= 0; j< i; j++)
      System.out.println("j")
}
Run Code Online (Sandbox Code Playgroud)

对于这个函数,Big O如何依赖于第二个for循环,因为它是j

另外,如果j <i被改为j <N*N,那么大O是否就是O(N ^ 3)呢?

big-o

1
推荐指数
1
解决办法
7459
查看次数

主方法parseBoolean不起作用

我需要解析我的main方法,看看boolean是设置为true还是false,但是每次运行它都会被设置为false.

当我去运行程序时,这是我的交互输出:

> java ScraperTestRunner1 true, "/Desktop/imputfile.txt"
2
false
/Desktop/imputfile.txt 
Run Code Online (Sandbox Code Playgroud)

我的主要方法的代码是:

public static void main(String[] args){
    System.out.println(args.length);

    if (args.length == 2) {
      docketBoolean = Boolean.parseBoolean(args[0]);
      inputDateFileString = (args[1]);
      System.out.println(docketBoolean);
      System.out.println(inputDateFileString);
Run Code Online (Sandbox Code Playgroud)

在我检查args.length是否为1之前,只搜索了布尔值,它会给我正确的布尔值,但现在不是.知道为什么会这样吗?

java program-entry-point boolean

0
推荐指数
1
解决办法
147
查看次数