从页面加载后更新的网页中检索数据

时间:2015-07-27 18:11:08

标签: java html jsoup

有一个网页我一直在尝试访问数据,但在页面加载我需要访问的div是空的,并在1秒后更新后更新。当我用java阅读网页时,它永远不会达到这一点。我总是认为它是空的(实际上它是一个被覆盖的占位符文本,所以我知道我在正确的位置)

有没有办法在我拿到之前等待它加载?或者,我怎样才能找出写入页面的数据来自何处?

当前代码:

public class AlchemyCalculator {

final int Max = 13192;
final int Min = 2;


    public static void main(String[] args){


        try {
            Document doc = Jsoup.connect("https://rsbuddy.com/exchange/?id=2").get(); 
            String textContents = doc.select("#buy-price").outerHtml();
                     //was just ensuring I was at the right place by using outerHtml
            System.out.println(textContents);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

    }

}

我只是从小开始尝试让它工作一次然后我计划扩展它。

1 个答案:

答案 0 :(得分:0)

JSoup只是一个解析器。它还可以使用connect()方法直接从Internet解析文档,但它不是浏览器。因此,如果您的网站稍后通过AJAX加载更多资源,Jsoup无法直接处理它。

我看到了选择:

  • 使用selenium,这是一个真正的浏览器,因此会创建您需要的AJAX调用

  • 通过调查实际调用的URL来识别AJAX调用。也许你可以用JSoup手动调用这些请求。

我看了一下网站。您可能很幸运,可以从

中检索所有信息
https://rsbuddy.com/exchange/summary.json

要解释这一点,你应该使用JSON解析器,而不是Jsoup。