如何从网站获取特定数据并在我的应用程序中显示?

时间:2017-08-01 08:53:40

标签: android html json parsing web-scraping

也许有类似的问题已被提出但我无法找到对我有用的答案。我想从网站(https://www.fcbarcelona.com/football/first-team/schedule)获得此信息(红色方块):俱乐部的日期,时间和名称。我看到有一种方法可以通过json解析来获取信息,但我不知道这将如何工作。我是新手,甚至不知道要搜索什么,我不需要编写代码来帮助他们如何做到这一点。 enter image description here

2 个答案:

答案 0 :(得分:2)

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

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

    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 buff = 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
    }
    });
    

    使用上面的代码(需要根据您的需要进行更改)

    enter image description here

答案 1 :(得分:0)

我认为该网站没有提供一些API来获取这些数据。

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

第一个选项

  • 使用jsoun库。 HTML解析器

实施例

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

第二个选项




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