https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot, HtmlUnit (2.13) ile AngularJS (1.2.1) kullanarak bir web sayfası için anlık görüntü oluşturmaya çalışıyorum.HTMLUnit, AngularJS ile çalışmaz
Benim Java kodu: webClient.getPage(...)
herhangi istisna atar vermez
WebClient webClient = new WebClient();
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.setCssErrorHandler(new SilentCssErrorHandler());
webClient.getOptions().setCssEnabled(true);
webClient.getOptions().setRedirectEnabled(false);
webClient.getOptions().setAppletEnabled(false);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setPopupBlockerEnabled(true);
webClient.getOptions().setTimeout(10000);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(true);
webClient.getOptions().setThrowExceptionOnScriptError(true);
webClient.getOptions().setPrintContentOnFailingStatusCode(true);
HtmlPage page = webClient.getPage(new WebRequest(new URL("..."), HttpMethod.GET));
webClient.waitForBackgroundJavaScript(5000);
String result = page.asXml();
rağmen sonuç dizesi hala "unevaluated açısal ifadeleri" gibi
<div>
{{name}}
</div>
Ben http://htmlunit.10904.n7.nabble.com/htmlunit-to-scrape-angularjs-td29931.html#a30075 ama recomendation farkındayım içeriyor orada verilen de işe yaramıyor.
Elbette, aynı GET isteği geçerli tüm tarayıcılarda istisnasız çalışır.
Herhangi bir fikir/deneyim HtmlUnit AngularJS ile nasıl çalışır?
Güncelleme:
Bir HtmlUnit'in bug report yarattı.
Şimdilik, uygulamamı PhantomJS'ye değiştirdim.
System.setProperty("phantomjs.binary.path", "phantomjs.exe");
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);
caps.setCapability("takesScreenshot", false);
PhantomJSDriver driver = new PhantomJSDriver(caps);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get(new URL("..."));
String result = driver.getPageSource();
Update2: Belki bu kod parçacığı benzer bir sorunu olan başkalarına yardım Ben Google tarayıcısı olarak manuel sayfaların oluşturulması stoped Açısal siteleri kendisini ben iyi işler var şimdi
Bu, HTMLUnit'in açısal yönergeleri çözmediği sorunu çözdüğü için kabul edilen yanıt olmalıdır. Teşekkürler! – chaitanya
Bu, HtmlUnit'in AngularJS için zayıf desteğinden dolayı yardımcı görünüyor, ancak tüm sorunları çözmüyor. Umarım 2.15 daha iyi olacak ... – Splaktar