Timeout Jsoup始终返回超时错误
我有以下代码从yahoo finance.hk获取股票价格 但它总是返回超时错误 请帮忙Timeout Jsoup始终返回超时错误,timeout,jsoup,Timeout,Jsoup,我有以下代码从yahoo finance.hk获取股票价格 但它总是返回超时错误 请帮忙 public GetStockPriceFromWebOneByOne(String url){ this.url = url; } private void setDataFromAAStock() throws IOException, InterruptedException{ Document document = Jsoup.connect(
public GetStockPriceFromWebOneByOne(String url){
this.url = url;
}
private void setDataFromAAStock() throws IOException, InterruptedException{
Document document = Jsoup.connect(url).ignoreHttpErrors(true).timeout(timeOut*1000).get(); // s
//TimeUnit.SECONDS.sleep(2);
Elements answerers = document.select("div.yfi_rt_quote_summary div.yfi_rt_quote_summary_rt_top.sigfig_promo_0 span.time_rtq_ticker");
// Elements answerers = document.select(".content .inline_block.vat.float_l .boxForex .font26 .neg .arr_ud.arrow_d6");
for (Element answerer : answerers) {
//System.out.print(answerer.text()+"\n");
price = answerer.text();
// splitString(answerer.text());
}
}
public String getDataFromAAStock() throws IOException, InterruptedException{
setDataFromAAStock();
return price;
}
我没有向yahoo finance hk查询,但您可能应该在连接到它时尝试设置一个合理的浏览器userAgent字符串。见 增编: 当然,您可以使用以下方法完全关闭超时:
Document document = Jsoup.connect(url)
.ignoreHttpErrors(true)
.timeout(0)
您是否使用浏览器开发工具查看了浏览器和站点之间的网络流量?它可能会帮助您分析潜在的问题
Document document = Jsoup.connect(url).ignoreHttpErrors(true).timeout(timeOut*1000).get();
进入
我认为您的“连接”有问题,因为
.get()
可能需要.userAgent(“Mozilla”)在调用.get()之前执行code>代码>我尝试过使用userAgent和不使用userAgent方法,两者都没有wroks@WaiHung看到我修改过的答案了吗
Document document = Jsoup.connect(url).ignoreHttpErrors(true).timeout(timeOut*1000).get();
Connection connect = Jsoup.connect(url)
.ignoreHttpErrors(true)
.timeout(timeOut*1000);
// use this for chrome
.userAgent("Mozilla");
System.out.println("Connection made BEFORE document.");
Document document = connect.get();
System.out.println("Connection made AFTER document.");