6

URLを持っています。Javaスクリプトを実行した後、URLのページソースを取得したい。

HtmlUnitを使用してページソースをフェッチ:URLがスタックしました

最初は、システムリソースと高いCPU使用率が原因で、URLがスタックしているのではないかと思っていました。

次に、HTMLUNIT2.9および2.11で実行してみました。解析中に両方でスタックしました。スタックしているHTMLUNITコードスクレイプについては、上記の質問を参照してください。

これは、JS実行が無限ループに入ったことが原因である可能性があります。

問題の原因となっているJSファイルを確認し、実行から除外したいと思います。

それらがグーグルアナリティクス、ツイッターなどのサイトのJSである場合、私はそれらをまったく必要としないかもしれません。

そこで、特定のJSファイルを無視して残りを実行するようにHTMLユニットに指示する方法を見つけたいと思います。

誰かがそれを行う方法を知っていますか?

4

1 に答える 1

5

これを試して。それは私のために働いた:

class InterceptWebConnection extends FalsifyingWebConnection{
    public InterceptWebConnection(WebClient webClient) throws IllegalArgumentException{
        super(webClient);
    }
    @Override
    public WebResponse getResponse(WebRequest request) throws IOException {
        WebResponse response=super.getResponse(request);
        if(response.getWebRequest().getUrl().toString().endsWith("dom-drag.js")){
            return createWebResponse(response.getWebRequest(), "", "application/javascript", 200, "Ok");
        }
        return super.getResponse(request);
    }
}

次に、セットアップ中に次のように記述しますwebClient

new InterceptWebConnection(webClient);
于 2013-03-06T07:09:04.883 に答える