使用 css 选择器 jsoup 解析 html
parsing html with css selector jsoup
我正在尝试从 www.dolarhoy.com
中获取下图中显示的值
我用 jsoup 做这样的事情,但下面的代码不起作用。
private static String obtenerCotizacion() throws IOException {
Document docDolarHoy = Jsoup.connect("http://www.dolarhoy.com").get();
String dolar= docDolarHoy.select("div.col-md-6.venta > h4 > span").first().text();
System.out.println("dolarHoy: " + dolar);
return dolar;
}
}
也试探
字符串 dolar= docDolarHoy.select("body > div.container.body-content > div > div > div.col-md-8 > div.row > div.col-md-6.venta > h4 > span").first().text();
和
字符串美元= docDolarHoy.select("div.col-md-6:nth-child(2) > h4:nth-child(1) > span:nth-child(1)").first().text();
这返回一个空值。
有什么建议吗?
谢谢!
使用浏览器的开发人员工具,我得到了以下选择器 - div.col-md-6:nth-child(2) > h4:nth-child(1) > span:nth-child(1)
。
如果您仍然不明白 - 将浏览器的 userAgent
字符串添加到 get
请求中,例如 -
Document docDolarHoy = Jsoup.connect("http://www.dolarhoy.com")
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0")
.get();
编辑
经过一些试验后,完整的工作代码(减去异常处理)是:
Public static void main(String[] args) throws IOException {
Document docDolarHoy = Jsoup.connect("http://www.dolarhoy.com")
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0")
.get();
String dolar= docDolarHoy.select("div.col-md-6.venta > h4 > span").first().text();
System.out.println("dolarHoy: " + dolar);
System.out.println(docDolarHoy.html());
}
并且输出:
dolarHoy: $ 30.84
我正在尝试从 www.dolarhoy.com
我用 jsoup 做这样的事情,但下面的代码不起作用。
private static String obtenerCotizacion() throws IOException {
Document docDolarHoy = Jsoup.connect("http://www.dolarhoy.com").get();
String dolar= docDolarHoy.select("div.col-md-6.venta > h4 > span").first().text();
System.out.println("dolarHoy: " + dolar);
return dolar;
}
}
也试探
字符串 dolar= docDolarHoy.select("body > div.container.body-content > div > div > div.col-md-8 > div.row > div.col-md-6.venta > h4 > span").first().text();
和
字符串美元= docDolarHoy.select("div.col-md-6:nth-child(2) > h4:nth-child(1) > span:nth-child(1)").first().text();
这返回一个空值。
有什么建议吗?
谢谢!
使用浏览器的开发人员工具,我得到了以下选择器 - div.col-md-6:nth-child(2) > h4:nth-child(1) > span:nth-child(1)
。
如果您仍然不明白 - 将浏览器的 userAgent
字符串添加到 get
请求中,例如 -
Document docDolarHoy = Jsoup.connect("http://www.dolarhoy.com")
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0")
.get();
编辑 经过一些试验后,完整的工作代码(减去异常处理)是:
Public static void main(String[] args) throws IOException {
Document docDolarHoy = Jsoup.connect("http://www.dolarhoy.com")
.userAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0")
.get();
String dolar= docDolarHoy.select("div.col-md-6.venta > h4 > span").first().text();
System.out.println("dolarHoy: " + dolar);
System.out.println(docDolarHoy.html());
}
并且输出:
dolarHoy: $ 30.84