특히이 웹 사이트에서 모든 이미지를 가져 오려고합니다 : http://web.archive.org/web/20160110012916/http://habibemaia.com/. 거의 모든 "src"태그를 모아서 거기에서 다운로드 할 수 있지만 타이밍이나 클릭 이벤트로 자바 스크립트에 의해 변경되는 주 그림에 문제가 있습니다. 내가 사용과 같이 클릭하려고 사업부 도착 후div의 click()이 자바 스크립트를 트리거하지 않습니다.
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.waitForBackgroundJavaScript(15000);
webClient.waitForBackgroundJavaScriptStartingBefore(5000);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getOptions().setUseInsecureSSL(true);
: :이처럼 내 웹 클라이언트를 설정
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에 클릭하면을, 새로운 이미지가 나타납니다. 불행히도이 코드는 이미지를 변경하는 자바 스크립트를 트리거하지 않습니다. 사용해 보았습니다. 다른 곳에서 제안한대로 운 좋게도 클릭 한 후,
webClient.waitForBackgroundJavaScript(3000);
클릭 후 사용했습니다. 페이지가 변경되지 않습니다. 이제 나는 아이디어가 완전히 없어졌습니다. 도와 주셔서 감사합니다.
당신이 맞아요. 그리고 다른 팁도 주셔서 감사합니다! – Johnny
흠, Chrome 디버그에서 이미지 링크를 볼 수 있지만 getPage()를 실행하면 첫 번째 이미지 만 있고 다른 div는 비어 있습니다. – Johnny
다른 div가 display : none 스타일을 가지고 있기 때문일 수 있습니까? 클래스 나 이드가 아닌 모든 div를 수집하는 방법으로이 div를 얻고 싶습니다. 문제가 될 수있는 2.20 버전을 사용하고 있습니까? – Johnny