【问题标题】:Flutter - How to parse data from a website to a list viewFlutter - 如何将数据从网站解析到列表视图
【发布时间】:2018-08-15 20:09:28
【问题描述】:

我正在寻求有关我的测试应用程序的帮助,以提供一个新闻提要,以解析来自网站的数据,即 VMoneyNews (我已获得他们使用他们数据的许可)

我的目标是解析Bitcoin News 类别中每篇文章的article titlemain article textarticle image,以实现到listView,在本例中为水平listViewRow

不要在每篇文章的顶部添加粗体标题文本,或类似文章的链接。

有人可以为我提供此代码吗?我假设这将使用 HTML 依赖项,但我只是不知道从哪里开始实现此功能。

谢谢。

【问题讨论】:

  • 请不要说“我将在我的问题被回答后的 24 小时内支付 50 代表的奖励。”如果有人想帮助你,他会在没有这个的情况下这样做
  • 好的,我会记住这一点并编辑我的问题,只是我真的需要尽快回答这个问题。

标签: android html ios dart flutter


【解决方案1】:

我创建了一个完整的应用程序,它展示了如何解析 HTML 并从中提取数据,你可以 find it here 但这个想法很简单:

1.导入这3个库进行html解析

import 'package:http/http.dart' as http;
import 'package:html/parser.dart' as parser;
import 'package:html/dom.dart' as dom;

2.从你想要的页面获取数据

Future<List<String>> getData() async { 
  http.Response response = await http.get('website');
}

3.从网站中提取数据

dom.Document document = parser.parse(response.body);

4。取决于您的需要假设您想要获取所有带有文章标签的元素

document.getElementsByTagName('article')

然后您可以使用 for-each 迭代 throw all article 并执行相同操作以获取 article 中的数据。还可以考虑为文章制作一个模型类,以便您以后可以轻松地修改它

【讨论】:

  • 这太好了,我会对此进行测试并在 8 月 16 日回复您。 (在我的国家晚了)
  • 谢谢你,这帮了很多忙:)
  • 有什么我可以联系你的吗?除非我打开一个新问题,否则堆栈可能太长了,所以我可以通过电子邮件发送给您吗?只是想问一下将您的一些代码迁移到我的项目中。谢谢
  • 你可以在推特上联系我,你会在 mu 个人资料中找到链接
  • 谢谢,我会在下一个小时尝试与您联系。
【解决方案2】:

dart 中的网页抓取现在很容易! 只需在 pub 上查看 web_scraper 包即可。

使用这个包,您可以抓取网站的 HTML 标签数据到简单的列表和地图中。

您可以在其存储库中找到类似的example

【讨论】:

    【解决方案3】:

    我认为一个干净的解决方案是尽可能在后端做这些事情,如果你使用nodejs作为你的后端,你可能会想到casperJsphantomJs,解析html DOM并提取数据并将干净的json 数据返回到移动应用程序。

    【讨论】:

    • 这会在服务器端实现吗?
    • 是的,这将在服务器端完成,它可以在移动设备上制作,它需要大量的硬件资源。
    猜你喜欢
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 2017-11-02
    • 2018-12-09
    • 1970-01-01
    • 2017-03-30
    相关资源
    最近更新 更多