【问题标题】:How to get specific data from a website and show it in my app?如何从网站获取特定数据并将其显示在我的应用程序中?
【发布时间】:2018-01-08 01:11:51
【问题描述】:

也许已经有人问过类似的问题,但我找不到适合我的答案。我只想从网站 (https://www.fcbarcelona.com/football/first-team/schedule) 获取这些信息(红色方块):日期、时间和俱乐部名称。我看起来有一种方法可以通过 json 解析获取信息,但我不知道这将如何工作。我对此很陌生,甚至不知道要搜索什么,我不需要编写代码,只需要帮助如何做到这一点。

【问题讨论】:

    标签: android html json parsing web-scraping


    【解决方案1】:

    我们可以通过在webview中加载数据来从android中的webview中获取某些值,你应该需要一些html和javascript方面的知识。

    1. 在浏览器中打开网站并右键单击页面单击检查元素或检查(chrome)
    2. 从该网页中找到您需要的 id/class/tag

    在安卓中

    webview.loadUrl("javascript:(function() { " +  
        "document.getElementsByClassName('match__main__date__dmy')[0].style.color = 'red'; " +  
        "})()");
    
    webview1.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
    
        StringBuilder sb = new StringBuilder();
        sb.append("document.getElementsByTagName('match__main__date__dmy')[0].onsubmit = function () {");
        sb.append(",// create your Json ");
        sb.append("};");
    
       //parse the json to get your desired output
    }
    });
    

    使用上面的代码(需要根据自己的需要更改)

    【讨论】:

    • 你知道我是否可以使用 firebase 数据库来访问该数据。我可以手动将日期和时间放入数据库并从应用程序访问它吗?这是一种可能性吗?
    【解决方案2】:

    我假设网站没有提供一些 API 来获取这些数据。

    因此我建议的方式是HTML Scraping。这可以通过 Android 上的 Java 完成。

    第一个选项

    • 使用jsoup 库。 HTML 解析器

    例子

    Document document = Jsoup.connect(url).get();
    Elements matchDate = doc.select("p".first); //<p> tag
    

    第二个选项




    我个人会使用 jsoup,因为它更方便易用。当然,所有这些都需要 HTML 的基本知识。

    【讨论】:

    • 你知道我是否可以使用 firebase 数据库来访问该数据。我可以手动将日期和时间放入数据库并从应用程序访问它吗?这是一种可能性吗?
    猜你喜欢
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 2014-03-29
    • 2011-11-07
    • 2017-01-29
    • 1970-01-01
    相关资源
    最近更新 更多