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

时间:2020-11-12 20:21:59

标签: java html htmlunit

我有一个问题与我要从中获取数据的站点的功能有关。 在实践中,当我下载网站的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();
        }

    }

}

1 个答案:

答案 0 :(得分:0)

您看到的那个“缓冲区”是一个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