2017-03-07 106 views
-1

我有以下代碼從雅虎finance.hk 的滴答價格,但它總是返回超時錯誤 請幫Jsoup總是返回超時錯誤

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; 
    } 

回答

0

我沒有跟雅虎財經香港支票,但你也許應該嘗試在連接到它時設置一個合理的瀏覽器userAgent字符串。見docs

Document document = Jsoup.connect(url) 
         .ignoreHttpErrors(true) 
         .timeout(timeOut*1000) 
         .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6") 

附錄: 當然,你也可以通過使用完全關閉超時:

Document document = Jsoup.connect(url) 
         .ignoreHttpErrors(true) 
         .timeout(0) 

難道你看一下網絡流量的瀏覽器,並與該網站之間瀏覽器開發工具?它可以幫助你分析潛在的問題。

+0

我試圖使用userAgent和不使用userAgent方法,都不是wroks –

+0

@WaiHung看到我的修改回答 – luksch

+0

仍然無法正常工作 –