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

Posted

技术标签:

【中文标题】如何从网站获取特定数据并将其显示在我的应用程序中?【英文标题】: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 解析获取信息,但我不知道这将如何工作。我对此很陌生,甚至不知道要搜索什么,我不需要编写代码,只需要帮助如何做到这一点。

【问题讨论】:

【参考方案1】:

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

    在浏览器中打开网站并右键单击页面单击检查元素或检查(chrome) 从该网页中找到您需要的 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

第二个选项

使用内置工具,如DOM Parser - 参考here

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

【讨论】:

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

以上是关于如何从网站获取特定数据并将其显示在我的应用程序中?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取通知 onesignal 的内容并将其显示在我的 android 应用程序中

如何获取在我的网站上发帖的用户的地理区域并将其存储在数据库中[关闭]

如何从图库中隐藏照片并将其存储在我的应用程序中

从数据库中提取 pdf 并将其显示在我的 cshtml 上

如何从所有用户 ID (UID) 中获取特定值并保存在 RecyclerView Firebase UI

如何“扫描”网站(或页面)以获取信息,并将其带入我的程序?