Chcę tylko zawartość tekstową strony i chcę, aby pobieranie było tak lekkie, jak to tylko możliwe. Czy mogę wyłączyć parsowanie i dodatkowe ładowanie JavaScript, CSS i innych zewnętrznych treści, które HTMLUnit robi z pudełka?Jak uzyskać czysty kod HTML strony w HTMLUnit, ignorując JavaScript i CSS?
5
A
Odpowiedz
9
myślę najbliższa rzecz do czego szukasz:
WebClient webClient = new WebClient();
webClient.setCssEnabled(false);
webClient.setAppletEnabled(false);
webClient.setJavaScriptEnabled(false);
Dla HtmlUnit 2,13 i powyżej, należy webclient.getOptions()
.
Również ta question może być przydatna. To naprawdę dla mnie rzeczy szybciej, ale musiałem przekompilować HtmlUnit ...
Wreszcie, w celu uzyskania oryginalną treść strony (zamiast wyjścia asXml()
) spróbuj wykonać następujące czynności:
WebClient webClient = new WebClient();
HtmlPage page = webClient.getPage("http://www.yourpage.com");
String originalHtml = page.getWebResponse().getContentAsString();
Dziękuję za odpowiedź. Jaka byłaby różnica między 'asXML()' i 'page.getWebResponse(). GetContentAsString()'? – Thomas
'asXML()' sformatuje kod (na przykład doda spacje za każdym razem, gdy otwarty jest znacznik html), podczas gdy 'getContentAsString()' pokaże ci kod html dokładnie tak, jak jest zwracany przez serwer WWW –
Uruchamianie HTMLUnit 2.13, użyj webClient.getOptions(), aby wywołać metody "enable". – Paddy