[英]How to get a value from a webpage? Error in the website
我正在尝试制作一个脚本来查找美元的价值(我来自阿根廷)并打印出来。
我设法通过一个网站(“ https://www.bna.com.ar/Personas ”)来做到这一点。 但是,在尝试使用其他网站时,我遇到了一些错误。 我使用相同的代码并将 XPath 更改为我想要查找的元素。
这是(“ http://www.dolarhoy.com.ar/ ”)的代码:
static String getValuacion(){
String str = "http://www.dolarhoy.com.ar/";
java.util.logging.Logger.getLogger("com.gargoylesoftware").setLevel(java.util.logging.Level.OFF);
String valuacion = "No se sabe";
try {
URL url = new URL(str);
WebClient wc = new WebClient(BrowserVersion.CHROME);
HtmlPage page = wc.getPage (url);
valuacion = "Dolar Venta: " + getDolarVenta (page) + "\nDolar Compra: " + getDolarCompra (page);
}catch (Exception ex){
System.out.println ("Error al conectarse. Error: " + ex.getMessage ());
}
return valuacion;
}
private static String getDolarVenta(HtmlPage page) {
HtmlAnchor anc = page.getFirstByXPath ("/html/body/div/div/div/div[1]/div[1]/div[1]/div[1]/h4/a/span");
return anc.asText ();
}
private static String getDolarCompra(HtmlPage page) {
HtmlAnchor anc = page.getFirstByXPath ("/html/body/div/div/div/div[1]/div[1]/div[1]/div[2]/h4/a/span");
return anc.asText ();
}
}
它会引发以下错误: Error al conectarse. Error: missing; before statement (script in https://www.cronista.com/ from (21, 9) to (120, 10)#109)
Error al conectarse. Error: missing; before statement (script in https://www.cronista.com/ from (21, 9) to (120, 10)#109)
我想这是网站上的某些东西造成了麻烦。 我希望有人可以帮助我(抱歉英语不好)
谢谢!
我对您的代码进行了两项更改:
更改 1:我在此处添加了一个新行以禁用 JS,这导致站点某处出现问题:
WebClient wc = new WebClient(BrowserVersion.CHROME);
wc.getOptions().setJavaScriptEnabled(false); // <-- new line
更改 2:我将您的HtmlAnchor
类更改为HtmlSpan
类:
HtmlSpan anc = page.getFirstByXPath(...); // <-- changed in 2 places
您正在访问跨度,而不是锚点。
在这些更改之后,我得到了以下 output:
Dolar Venta: $ 116,02
Dolar Compra: $ 115,37
希望有帮助。
编辑:
我应该补充一点:如果您不想在目标页面中完全禁用 JavaScript,则可以在出现错误后使用以下命令继续进行 JS 处理:
wc.getOptions().setThrowExceptionOnScriptError(false);
对于这个特定的 web 站点,您要访问的数据在 HTML 中可用 - 访问它不需要 JS。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.