为什么即使我等待网站完成加载,也为什么没有数据?

问题描述

我有一个问题与我要从中获取数据的站点功能有关。 在实践中,当我下载网站的HTML时,它会下载所有内容,但不下载我想要的数据,我注意到当您在我想要的数据出来之前打开网站时,会有一个gif缓冲,因此我增加了很多秒的延迟(还尝试了几分钟,但结果没有改变)以允许htmlUnit加载该网站,但显然,问题不在于此。我整个下午都在寻找答案,但一无所获。

我离开了您的网站:https://www.finderbet.it/surebet/

代码

import com.gargoylesoftware.htmlunit.*; 
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import java.io.IOException;

public class Scrapper {
    private static final String url="https://www.finderbet.it/surebet/";
    public static void main(String[] args) {

        WebClient client= new WebClient(browserVersion.BEST_SUPPORTED);
        client.getoptions().setCssEnabled(false);
        client.getoptions().setJavaScriptEnabled(false);

        try {
            HtmlPage page= client.getPage(url);
            Thread.sleep(10000);
            System.out.println(page.asXml());
        } catch (IOException e) {
            e.printstacktrace();
        } catch (InterruptedException e) {
            e.printstacktrace();
        }

    }

}

解决方法

您看到的那个“缓冲区”是一个AJAX调用-如果您要直接调用它的话..它会提供您要查找的数据。 IE浏览器

finderbet.it/wp-json/bet/v1/getItems

您可以使用get参数来过滤JSON,包括分页IE

https://www.finderbet.it/wp-json/bet/v1/getItems?surebet_do_set_filter=NOPE&action-set-filtri_nonce=d20ddf9c95&bookmakers=&sports=&data_evento_da=&data_evento_a=&profitto_min=&puntate=tutti&orderBy=profitto&order=desc&page=1

细分为:

https://www.finderbet.it/wp-json/bet/v1/getItems
    surebet_do_set_filter=NOPE
    action-set-filtri_nonce=d20ddf9c95
    bookmakers=
    sports=
    data_evento_da=
    data_evento_a=
    profitto_min=
    puntate=tutti
    orderBy=profitto
    order=desc
    page=1

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...