joup工具类
public class jsoupUtil {
private static String getHtmlPageResponse(String url) throws Exception {
int timeout = 9000;
int waitForBackgroundJavaScript = 9000;
String result = "";
final WebClient webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setThrowExceptionOnFailingStatusCode(false);
webClient.getOptions().setActiveXNative(false);
webClient.setJavaScriptErrorListener(new MyJSErrorListener());
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setJavaScriptEnabled(true);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
webClient.getOptions().setTimeout(timeout);
webClient.setJavaScriptTimeout(timeout);
HtmlPage page;
try {
page = webClient.getPage(url);
} catch (Exception e) {
webClient.close();
throw e;
}
webClient.waitForBackgroundJavaScript(waitForBackgroundJavaScript);
result = page.asXml();
webClient.close();
return result;
}
public static Document getHtmlContent(String url){
String content = null;
try {
content = getHtmlPageResponse(url);
} catch (Exception e) {
e.printStackTrace();
}
return Jsoup.parse(content);
}
public static class MyJSErrorListener extends DefaultJavaScriptErrorListener {
@Override
public void scriptException(HtmlPage page, ScriptException scriptException) {
}
@Override
public void timeoutError(HtmlPage page, long allowedTime, long executionTime) {
}
@Override
public void malformedScriptURL(HtmlPage page, String url, MalformedURLException malformedURLException) {
}
@Override
public void loadScriptError(HtmlPage page, URL scriptUrl, Exception exception) {
}
@Override
public void warn(String message, String sourceName, int line, String lineSource, int lineOffset) {
}
}
public static void main(String[] args) {
Document htmlContent = getHtmlContent("https://www.bilibili.com/video/BV1Vk4y1r7qs");
System.out.println(htmlContent.getElementsByClass("ops").html());
}
}