diff --git a/pom.xml b/pom.xml
index b59af17..0be1982 100644
--- a/pom.xml
+++ b/pom.xml
@@ -159,9 +159,18 @@
org.jetbrains.kotlin
kotlin-stdlib
1.3.72
+ compile
+
+ net.sourceforge.htmlunit
+ htmlunit
+ 2.42.0
+
+
+
+
@@ -190,6 +199,20 @@
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ 1.3.72
+
+
+ compile
+ process-sources
+
+ compile
+
+
+
+
diff --git a/src/main/java/cn/celess/blog/util/HttpUtil.java b/src/main/java/cn/celess/blog/util/HttpUtil.java
index b34b5e6..8dcc7fb 100644
--- a/src/main/java/cn/celess/blog/util/HttpUtil.java
+++ b/src/main/java/cn/celess/blog/util/HttpUtil.java
@@ -1,10 +1,15 @@
package cn.celess.blog.util;
+import com.gargoylesoftware.htmlunit.BrowserVersion;
+import com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController;
+import com.gargoylesoftware.htmlunit.WebClient;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
+import java.net.MalformedURLException;
import java.util.Objects;
/**
@@ -62,4 +67,20 @@ public class HttpUtil {
}
}
+
+ public static String getAfterRendering(String url) {
+ try (final WebClient webClient = new WebClient(BrowserVersion.CHROME)) {
+ webClient.getOptions().setCssEnabled(false);
+ webClient.getOptions().setJavaScriptEnabled(true);
+ webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
+ webClient.getOptions().setThrowExceptionOnScriptError(false);
+ webClient.getOptions().setDownloadImages(false);
+ webClient.getOptions().setActiveXNative(false);
+ webClient.setAjaxController(new NicelyResynchronizingAjaxController());
+ final HtmlPage page = webClient.getPage(url);
+ return page.asXml();
+ } catch (IOException e) {
+ return null;
+ }
+ }
}