2016-04-01 24 views
2

Ben PhantomJS ile daha HtmlUnit'in ilk bir web sayfasının html kaynağını almaya çalışıyordu ile web sitesinde yürütülmez, ancak her iki beni başarısız oluyor. Aldığım sayfa kaynağı Javascript ile doludur, uygulanmadığı anlaşılıyor. Gerçekten neler olduğunu anlayamıyorum. Denedim HtmlUnit'in sürümü:JavaScript HtmlUnit'in ve PhantomJS

webClient = new WebClient(BrowserVersion.FIREFOX_38); 
webClient.getOptions().setJavaScriptEnabled(true); 
webClient.setAjaxController(new NicelyResynchronizingAjaxController()); 
webClient.waitForBackgroundJavaScript(10000); 
webClient.getOptions().setThrowExceptionOnScriptError(true); 
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false); 

HtmlPage page = webClient.getPage("https://www.flickr.com/search/?text=cats&view_all=1"); 
webClient.close(); 

System.out.println(page.asXml()); 

phantomJS versiyon: Birisi bana burada yardımcı olabilir

File phantomjs = Phanbedder.unpack(); 
DesiredCapabilities dcaps = new DesiredCapabilities(); 
dcaps.setJavascriptEnabled(true); 
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs.getAbsolutePath()); 
dcaps.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"); 

driver = new PhantomJSDriver(dcaps); 
driver.manage().timeouts().setScriptTimeout(10, TimeUnit.SECONDS); 
driver.get("https://www.flickr.com/search/?text=cats&view_all=1"); 
System.out.println(driver.getPageSource()); 

minnettar olurdu. Teşekkürler.

+0

, neden sadece bir HTTP lib veya JSoup kullanmıyorsun? Çok daha hızlı, daha kolay ve daha güvenilir olacak. –

+0

Hayır, görüntü bağlantıları almak için Javascript kaynaklı bir kaynak istiyorum. – Jhonny

+0

Tamam, soruyu açıklığa kavuşturmaya değebilir. Ayrıca, aldığınız hataları/çıktıları lütfen bildirin. 'İdam edilmiyor gibi görünüyor 'çok yararlı değil. –

cevap

0

bu overthink olmaz. Firefox'ta, (web) developers toolbar'u yükleyin. Kaynağı Görüntüle -> Oluşturulan kaynak 'ı tıklayın. İstediğin statik kaynak ise

+0

Görünüm kaynağıyla, yalnızca görüntüleri oluşturacak olan javascript'i gösterir. Tuhaf, çünkü tarayıcılar görüntüleri doğru şekilde yükler. Eğer elemanı "incelersem", görüntü hrefleri orada. Sadece HtmlUnit'in Javascript'i neden işlemediğini anlamıyorum (hataları atama). – Jhonny

+0

Oluşturulan kaynak bunu göstermiyor mu? – MikeJRamsey56

+0

Evet, JS'nin basitçe yürütüldüğü ve atılmadığı görülüyor. – Jhonny