Java 尝试使用HtmlUnit访问网站时出现PatternSyntaxException
我目前正在尝试使用HtmlUnit访问Java代码中的网页。该页面有一个按钮,单击该按钮可打开一个新页面。但是当我尝试单击它时,编译器抛出这个异常,可以在附加的图像中找到。据我所知,这与页面Html代码中的非法转义序列有关 以下是我目前的代码:Java 尝试使用HtmlUnit访问网站时出现PatternSyntaxException,java,html,htmlunit,Java,Html,Htmlunit,我目前正在尝试使用HtmlUnit访问Java代码中的网页。该页面有一个按钮,单击该按钮可打开一个新页面。但是当我尝试单击它时,编译器抛出这个异常,可以在附加的图像中找到。据我所知,这与页面Html代码中的非法转义序列有关 以下是我目前的代码: try(WebClient client = new WebClient(BrowserVersion.CHROME)){ client.getOptions().setCssEnabled(false); WebRequest web
try(WebClient client = new WebClient(BrowserVersion.CHROME)){
client.getOptions().setCssEnabled(false);
WebRequest webRequest = new WebRequest(url);
webRequest.setCharset("utf-8");
HtmlPage entrypage = client.getPage(webRequest);
HtmlInput dwnld = (HtmlInput) entrypage.getElementById("btn_download");
long millis = System.currentTimeMillis();
while (System.currentTimeMillis() <= millis+11000) {
//Do nothing, just wait 11 seconds
}
if (dwnld != null) {
System.out.println("Found btn_download");
dwnld.click();
}
} catch (FailingHttpStatusCodeException | IOException e ) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try(WebClient=newWebClient(BrowserVersion.CHROME)){
client.getOptions().setCssEnabled(false);
WebRequest WebRequest=新的WebRequest(url);
webRequest.setCharset(“utf-8”);
HtmlPage entrypage=client.getPage(webRequest);
HtmlInput dwnld=(HtmlInput)entrypage.getElementById(“btn_下载”);
长毫秒=System.currentTimeMillis();
而(System.currentTimeMillis()可能的解决方案?!
这里的错误可能不在HTMLPassing框架中。我的建议是,不是HtmlUnit框架本身无法解析非法转义序列,而是它的记录器可能是
我本不打算用这种方式解决这个问题,但是当我将loggers级别更改为SEVERE以清理控制台输出时,没有抛出这样的异常
Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.SEVERE);
Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.SEVERE);
我的建议是正确的还是只是巧合?嘿,这里。首先,没有附加图像。其次,不要在图像中添加错误消息。复制/粘贴准确的错误消息,必要时删除敏感信息。谢谢,祝你好运!有什么例外?与其链接到图片,不如将其添加为文本。另外,请提供导致异常的相关输入。抱歉,忘记附加-。-'但现在它在这里。您可以发布网站URL以将正则表达式与实际浏览器进行比较吗?01_u720p.mkv.html
Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.SEVERE);
Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.SEVERE);