我使用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();
和
String dolar = docDolarHoy.select(“ div.col-md-6:nth-child(2)> h4:nth-child(1)> span:nth-child(1)”)。first()。 text();
这给了我一个空值。
有什么建议吗?
谢谢!
答案 0 :(得分:3)
使用浏览器的开发人员工具,我得到了以下选择器-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