Flutter,从网站获取特定图像

2023-12-20

我正在学习 flutter,想要获取各种图像,即卡通的缩略图。我用了HTTP库并获取响应数据。

但是,我怎样才能提取该图像呢?

网站:https://comic.naver.com/webtoon/weekdayList.nhn?week= https://comic.naver.com/webtoon/weekdayList.nhn?week=

Future<http.Response> _getData() async {
    return await http.get('https://comic.naver.com/webtoon/weekdayList.nhn?week=');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        backgroundColor: Colors.red,
      ),
      body: Center(
        child: RaisedButton(
          child: Text("Fetching"),
          onPressed: (){
            _getData().then((response){
              //dom.Document document = parser.parse(response.body);
              print(response.body);
            }).catchError((e) => print(e));
          },
        ),
      ),
    );
  }

我想做的是下面的。

  1. 以 HTML 代码形式获取网页
  2. 查找每个卡通的图片网址
  3. 获取该图像

这里有一个基本的例子,按下右上角的按钮后,您将在一个ListView:

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


   ...create your StatefulWidget



     class ParsingWidgetState extends State<ParsingWidget> {
      List<String> list = List();

      void _getData() async {
        final response =
            await http.get('https://comic.naver.com/webtoon/weekdayList.nhn?week=');
        dom.Document document = parser.parse(response.body);
        final elements = document.getElementsByClassName('thumb');

        setState(() {
          list = elements
              .map((element) =>
                  element.getElementsByTagName("img")[0].attributes['src'])
              .toList();
        });
      }

      @override
      Widget build(BuildContext context) {
        return Scaffold(
            appBar: AppBar(
              backgroundColor: Colors.red,
              actions: <Widget>[
                IconButton(
                  icon: Icon(Icons.refresh),
                  onPressed: () {
                    _getData();
                  },
                ),
              ],
            ),
            body: ListView.builder(
              itemCount: list.length,
              itemBuilder: (context, index) {
                return Image.network(
                  list[index],
                  height: 200.0,
                );
              },
            ));
      }
    }

尝试使用 FutureBuilder 代替setState,这只是一个工作示例。

更多信息:

  • https://docs.flutter.io/flutter/widgets/FutureBuilder-class.html https://docs.flutter.io/flutter/widgets/FutureBuilder-class.html
  • https://flutter-academy.com/async-in-flutter-futurebuilder/ https://flutter-academy.com/async-in-flutter-futurebuilder/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter,从网站获取特定图像 的相关文章

随机推荐

  • 解决 C# 和 C++/CLI 项目之间的循环项目依赖性?

    我们有一个包含多个项目的解决方案 在一种特殊情况下 我们有两个项目 1 一个完成大部分工作的 C 项目 2 一个 C CLI 项目 充当某些本机 C 代码的中间人 C 代码调用 C 包装器 一切顺利 但是 我们正在引入一些新功能 在 C 包
  • 如何动态添加和删除js文件

    我有一个网页index php 我想动态向该页面添加和删除JS文件 到目前为止我做到了 我原计划通过以下方式更改此脚本标记的 src function loadJsfiles filename var filePath include js
  • Vsix(Visual Studio 扩展)右键单击文件的完整路径

    我想检索右键单击文件的完整路径 在 Visual Studio 2017 的编辑器中 我已经实现了以下代码来在打开项目和 或解决方案时检索文件的路径 如果打开单个文件 此实现将不起作用 设想 公开VS 2017 导航到文件 gt 打开 gt
  • Visual Studio 2022 在 Windows 11 的外部显示器上显示模糊字体

    我的笔记本电脑连接到外部显示器 Dell 2412 升级到 vs2022 后 我注意到 Visual Studio 菜单字体变得模糊 它是可用的 但也是一个棘手的问题 我尝试清除透明字体并在 工具 gt 选项 中进行了一些字体调整 但这没有
  • Linux 上 Firefox 的 Canvas2D 性能较差

    在使用 Canvas2D 进行一些相当密集的渲染时 我遇到了一些特别难以调试的问题 我使用各种各样的东西 从globalCompositeOperation到多个屏幕外画布 其中一些drawImage介于两者之间的魔法 它在以下方面工作得非
  • 将 RDLC 输出作为电子邮件附件分发

    我们的 winforms 应用程序长期以来一直允许 打印 选项 该选项基本上使用 RDLC 客户要求我们添加一项功能 允许用户通过电子邮件发送 打印 输出 现在 我们知道 EMF 文件是作为当前打印过程的一种隐藏副产品创建的 在 TEMP
  • 如何使用 F# 3.0 类型提供程序生成 C# 友好、.Net 4.0 兼容类型

    我想使用 F 3 0 类型提供程序机制基于 弱 类型数据源生成 强 类型 在仅安装 Net 4 0 而未安装 Net 4 5 的环境中 必须可以从 C 客户端访问生成的类型 如果无法兼容 Net 4 0 我们就无法在当前的大型 ERP 项目
  • MongoDB Auth 无法在 Bitnami MEAN 堆栈图像上找到用户名

    尝试在 Amazon EC2 实例上运行 Web 应用程序 MEAN 但遇到以下问题 谁能帮我这个 node app js The Server has started on 9091 opt bitnami apps YelpCamp n
  • UI 自动化:访问 UIScrollView 内的 UIView

    有没有一种方法可以使用 JavaScript 和 UI 自动化测试来访问UIViews里面一个UIScrollView 自从UIScrollView并没有让我设置它是否具有可访问性 我想知道是否可以这样做 XIB 中的结构 我可以看到仪器日
  • 从 R 对象中提取信息并将其导入模型汇总表

    我正在尝试使用以下方法制作统计模型汇总表modelsummary包裹 我进行了 6 次回归 我对其中两个进行了联合假设检验 其中包括某些变量 具体来说 educ and exper 作为解释变量 我想将这些测试的 F 统计数据包含在表中 但
  • TFS分支,有什么优点

    我对 TFS 和源代码管理还很陌生 我无法理解分支的优势 因为我可以通过创建 2 个文件夹 main 和development 来做同样的事情 所以当我完成开发时 我可以使用任何 diff 工具将代码与主分支合并 那么设立分支机构还有什么意
  • 如何在 Angular 2 中的 ng2-table 列中添加按钮

    我想要一个表 其中每列中都应有编辑按钮 并且我使用了 ng2 但未能在末尾放置按钮 My html
  • 我们什么时候对字典执行 GetHashCode() ?

    我已将 Dictionary TKey TValue 用于多种目的 但我还没有遇到任何实现 GetHashCode 的场景 我相信这是因为我的键是 int 和 string 等主要类型 我很想知道何时应该使用自定义对象作为键并因此实现方法
  • 如何使用R迭代子文件夹并绑定相同ID的CSV文件?

    我被困住了 我需要一种方法来迭代目录中的一堆子文件夹 取出 4 个 csv 文件 绑定这 4 个 csv 文件的内容 然后使用初始子文件夹的名称将新的 csv 写入新目录作为新 csv 的名称 I knowR 可以做到这一点 但我不知道如何
  • 在 Google App Scripts 上使用 jQuery 手风琴内部的表单结构

    我在 Google App Script 中的 HTML 服务上使用手风琴结构 jQueryUI 内的表单 表单结构看起来像这样 相关代码如下 div h3 a href a h3 div
  • 字节和整数以及串联和 python

    我有 2 个 32 位无符号整数 777007543 和 114997259 和字节串 0x47 0x30 0x22 0x2D 0x5A 0x3F 0x47 0x58 我如何让 python 给我这 3 个的串联 这样我就有 0x2E 0x
  • 自动将空字符串映射为空

    当我尝试映射具有空字符串属性的对象时 目标也为空 是否有我可以打开的全局设置 表明所有空字符串都应映射为空 像这样的东西应该有效 public class NullStringConverter ITypeConverter
  • 为什么我无法使用同一模型注册多个 Django ModelAdmin?

    我有以下模型管理员 class EventAdmin admin ModelAdmin ModelAdmin config def queryset self request queryset super EventAdmin self q
  • JSON 的编组/解组、编码/解码、序列化/反序列化之间的关系和区别?

    在Go的JSON包中 我看到有marshal decode和其他功能 我以为decode与以下相反marshal 但后来意识到我可能是错的 我认为我面临的根本问题是 JSON的marshall unmarshal 编码 解码 序列化 反序列
  • Flutter,从网站获取特定图像

    我正在学习 flutter 想要获取各种图像 即卡通的缩略图 我用了HTTP库并获取响应数据 但是 我怎样才能提取该图像呢 网站 https comic naver com webtoon weekdayList nhn week http