当前位置: 首页 > 知识库问答 >
问题:

在从URL获取HTML之前预加载网站

别帅
2023-03-14

我试图从URL中获取数据,但我需要的信息需要几秒钟才能加载,并且在加载之前只在HTML中显示为加载,所以当我使用此代码时,我无法提取我需要的数据。

URL url = new URL("https://www.cardservices.uga.edu/fs_mobile/");
URLConnection con = url.openConnection();
InputStream is = con.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line = null;
while ((line = br.readLine()) != null){
    System.out.println(lineNumber +": "+ line); 
}

我怎么能让网址加载一段时间,然后再把超文本标记语言去掉呢?

共有2个答案

方航
2023-03-14

这是一个工作替代品,

    URL url = new URL("https://www.cardservices.uga.edu/fs_mobile/index.php/dashboard/occupancies/"); //This is the AJAX call that goes to load the data into webpage. You can get this from inspecting the network calls.
    URLConnection con = url.openConnection();
    InputStream is = con.getInputStream();
    BufferedReader br = new BufferedReader(new InputStreamReader(is));
    String line = null;
    while ((line = br.readLine()) != null){
        System.out.println(line); 
    }

它基本上给出了包含百分比的JSON响应。

希望有帮助。

此外,如果您非常想获得准确的HTML输出,可以使用Selenium执行等待。

乐正远航
2023-03-14

您正在调用的网页可能会调用ajax调用来获取数据,这就是为什么您无法使用您的方法获取数据。

您有两个选项来获取该数据:

  1. 使用浏览器的inspect元素(chrome中的F12)和“network”选项卡,获取ajax调用,并使用它而不是代码中使用的URL
  2. 使用无头库(例如ghoustjs)调用URL,并在页面加载后对数据进行爬网

在我看来,我会选择选项1

 类似资料:
  • 在JavaFX中,我使用stage1从一个阶段切换到另一个阶段。隐藏();第二阶段。show(); 然而,第二阶段相当大,包含了一大堆元素。所以当我显示()它时,当它第一次弹出时,有一段400毫秒的时间,整个阶段是空的和灰色的。然后所有的元素都出现了。 太难看了。这是在i7上,有一个非常好的图形处理器。 我已经注意到,如果我展示它,然后隐藏它,然后再次展示它,最终的节目从它出现在屏幕上的那一刻起就

  • 问题内容: 我在Java中使用Selenium Webdriver。我想在单击“下一步”按钮从第1页移至第2页后获得当前的url。这是我的代码: 我有隐式和显式的等待调用,以等待页面完全加载后再获得当前的url。但是,它仍在打印第1页的网址(应该是第2页的网址)。 问题答案: 就像您说的那样,因为下一个按钮的xpath在每个页面上都是相同的,所以它将不起作用。它按照编码的方式工作,它确实等待元素显

  • 问题内容: 有没有一种简单的方法可以从iframe获取当前网址? 观众将浏览多个站点。我猜我会在javascript中使用某些东西。 问题答案: 出于安全原因,只要iframe的内容和引用javascript是从同一域提供的,您就只能获取该url。只要这是对的,类似这样的东西就会起作用: 如果两个域不匹配,则会遇到跨站点引用脚本安全性限制。

  • 问题内容: 如何从网站获取HTML代码,进行保存并通过LINQ表达式查找一些文本? 我正在使用以下代码来获取网页的来源: 如何在网页源中的div中查找文本? 问题答案: 从网站获取HTML代码。您可以使用这样的代码。 这将为您提供从网站返回的 HTML 代码。但是通过 LINQ 查找文本并不是那么容易。也许使用正则表达式会更好,但不能与 HTML 代码一起很好地使用

  • 我正在尝试将容器的背景图像设置为来自资产的图像,如下所示: 但这将需要一些时间来加载和返回空白,同时屏幕直到图像加载。. 因此,我尝试在构建之前预加载图像,如下所示: 这返回了这个错误:

  • 是否可以在Java中获取重新加载的url? 我需要检索令牌附加到url后加载下面的超文本标记语言页面。 最初,URL将为 http://localhost:8080/validate.html?invisible=true代码 成功后它将是 <代码>http://localhost:8080/validate.html?token=xyz 我需要在Java中检索令牌值。 我尝试了下面的代码,但va