2017-01-08 3 views
0

私は特にこのウェブサイトからすべての画像を取得しようとしています:http://web.archive.org/web/20160110012916/http://habibemaia.com/。私はすべての "src"タグを集めてそこからダウンロードすることでほぼすべてを得ることができますが、タイミングやクリックイベントのいずれかでjavascriptによって変更されるメイン画像に問題があります。私は、私が使用して、このようにクリックしてくださいDIVなった後divのclick()はJavaScriptをトリガーしません

webClient.getOptions().setCssEnabled(true); 
webClient.getOptions().setJavaScriptEnabled(true); 
webClient.waitForBackgroundJavaScript(15000); 
webClient.waitForBackgroundJavaScriptStartingBefore(5000); 
webClient.setAjaxController(new NicelyResynchronizingAjaxController()); 
webClient.getOptions().setUseInsecureSSL(true); 

:私はこのように私のWebクライアントを設定

HtmlPage newPage = div.click(); 
DomNodeList<DomElement> newImages = newPage.getElementsByTagName("img"); 
for (DomElement img : newImages) { 
    if (img.hasAttribute("src")) { 
     newImagesStrings.add(img.getAttribute("src")); 
     System.out.println("Image added: "+img.getAttribute("src")); 
    } 
} 

私は、これはブラウザをint DIVをクリックした場合に、新しい画像が表示されます。残念ながら、このコードは画像を変更するjavascriptを起動しません。私は使用を試みました

webClient.waitForBackgroundJavaScript(3000); 

クリック()後、他のところで示唆されているように、運はありません。ページは変更されません。今、私は完全にアイデアがありません。手伝ってくれてありがとう。

答えて

0
webClient.waitForBackgroundJavaScript(15000); 
webClient.waitForBackgroundJavaScriptStartingBefore(5000); 

はオプション設定ではありません。 makeは、何らかのアクションの後でそれらを呼び出す場合にのみ意味を持ちます。コードの設定部分からこれを削除してください。

画像について:私は火の虫のページを簡単に分析しました。私にとっては、すべての画像がコードの一部であるように見えます.Javascriptは、(いくつかの派手なエフェクトを使って)視認性を切り替えるだけです。

多分何かのように:

  • は、スタイルを持つすべての子供を超える「cameraCont」
  • 反復クラスとdiv要素を見つける「cameraSlide」
  • このdiv要素のすべてのを指すのimg子供を持っています別のイメージ
+0

あなたは正しいです、それはそれを解決しました。他のヒントもありがとう! – Johnny

+0

ええと、私はChromeのデバッグでイメージリンクを見ることができますが、getPage()を実行すると、最初のイメージのみが存在し、他のdivは空です。 – Johnny

+0

他のdivにdisplay:noneスタイルが設定されている可能性がありますか?私はクラスやIDではなく、一般的にすべてのdivを収集してこれらのdivを取得したいと思います。私は問題があるかもしれない2.20バージョンを使用していますか? – Johnny

関連する問題