在1-2秒内同时建立50个以上的URL连接

问题描述 投票:0回答:1

我正在尝试从50多个动态网页中抓取实时数据,并且需要每1-2秒更新一次数据。为此,我每1/2秒安排了一个计时器,该计时器通过以下方法进行50次迭代(对于50个URL):

public double fetchData(String link) {
        String data = null;
        try {
            URL url = new URL();
            urlConn = url.openConnection(link);
            InputStreamReader inStream = new InputStreamReader(urlConn.getInputStream());
            BufferedReader buff = new BufferedReader(inStream);

            /*code that scrapes webpage, stores value in "data"*/
            inStream.close();
            buff.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
        return data;
}  

此方法有效,但每个网址大约需要一秒钟,或总计50秒。我还尝试了JSoup,希望可以使用以下代码克服延迟:

public double fetchData(String link, String identifier) {
        Document doc;
        String data = null;
        try {
            doc = Jsoup.connect(link).timeout(10*1000).get();
            data = doc.getElementById(identifier).parent().child(0).text();
        } catch (IOException e) {
            e.printStackTrace();
        } 
return data;
}

但是已经遇到了几乎相同的处理时间。是否有通过URLConnection,JSoup或其他方法同时从动态网页中绘制数据的更快方法?

java jsoup urlconnection
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.