【问题标题】:I want to import a part of a web page我想导入网页的一部分
【发布时间】:2021-06-18 01:51:34
【问题描述】:

我想将学校主页的通知带到我的应用程序中。 但我不知道问题是什么。 我也想引入标签、链接和星期几。

这是我的noted.dart

class _HotNewsWidgetState extends State<HotNewsWidget> {
  List<String> title = List();
  List<String> post = List();
  List<String> link = List();
  void _getDataFromWeb() async {
    final response =
        await http.get('http://yongwon-h.gne.go.kr/yongwon-h/main.do');
    dom.Document document = parser.parse(response.body);
    final elements = document.getElementsByClassName('ul_list');
    final element2 = document.getElementsByClassName('btn_more');
    final linkElemnt = document.getElementsByClassName('ul_list');
    setState(() {
      title = elements
          .map((element) => element.getElementsByTagName("a")[0].innerHtml)
          .toList();
      post = element2
          .map((element) => element.getElementsByTagName("span")[0].innerHtml)
          .toList();
      link = linkElemnt
          .map((element) =>
              element.getElementsByTagName("a")[0].attributes['href'])
          .toList();
    });
  }

这里是学校主页 html

<div class="notice060">
                    
                    <div class="list_box on">
                        <ul class="ul_list">

                        <li><a href="/yongwon-h/na/ntt/selectNttInfo.do?nttSn=85179304&amp;mi=73746">제8기 진해용원고등학교운영위원회 학부모위원 당선자 공고</a>
                            <span class="date">2021.03.19</span>
                            </li>
                            
                            <li><a href="/yongwon-h/na/ntt/selectNttInfo.do?nttSn=85156448&amp;mi=73746">20201학년도 대학수학능력시험 시행기본계획</a>
                            <span class="date">2021.03.17</span>
                            </li>
                            
                            <li><a href="/yongwon-h/na/ntt/selectNttInfo.do?nttSn=85141070&amp;mi=73746">제8기 학교운영위원회 교원위원 입후보자 등록현황</a>
                            <span class="date">2021.03.15</span>
                            </li>
                            
                            <li><a href="/yongwon-h/na/ntt/selectNttInfo.do?nttSn=85129816&amp;mi=73746">3월 3주 전학년 학사운영 안내</a>
                            <span class="date">2021.03.12</span>
                            </li>

                            <li><a href="/yongwon-h/na/ntt/selectNttInfo.do?nttSn=85117819&amp;mi=73746">2021 찾아가는 교육정책 설명회</a>
                            <span class="date">2021.03.10</span>
                            </li>

                        </ul>

                    </div>
                
</div>

解释 homepage picture

【问题讨论】:

    标签: flutter http dart web


    【解决方案1】:
    import 'dart:async';
    
    import 'package:wnetworking/wnetworking.dart';
    
    class Yongwon {
      static const _url = 'http://yongwon-h.gne.go.kr/yongwon-h/main.do';
      static final _regExp1 = RegExp(r'<h2 class="tit_1">(.|\n|\r|\u2028|\u2029)*?<h2 class="tit_2">');
      static final _regExp2 = RegExp(r'<li><a.+>(.+)<\/a>(.|\n|\r|\u2028|\u2029)*?(\d{4}\.\d\d\.\d\d)');
    
      static FutureOr<void> fetchNoticies() async {
        var page = await NetService.getRaw(_url).whenComplete(() => print('Page done.\n'));
        if (page != null) {
          final noticesPane = _regExp1.firstMatch(page)!.group(0);
          if (noticesPane != null) {
            final notices = _regExp2.allMatches(noticesPane);
            notices.forEach((notice) => print('${notice.group(1)} ..... ${notice.group(3)}'));
          }
        }
      }
    }
    
    void main(List<String> args) async {
      await Yongwon.fetchNoticies();
      print('\nJob done!');
    }
    

    结果:

    Page done.
    
    제8기 진해용원고등학교운영위원회 학부모위원 당선자 공고 ..... 2021.03.19
    20201학년도 대학수학능력시험 시행기본계획 ..... 2021.03.17
    제8기 학교운영위원회 교원위원 입후보자 등록현황 ..... 2021.03.15
    3월 3주 전학년 학사운영 안내 ..... 2021.03.12
    2021 찾아가는 교육정책 설명회 ..... 2021.03.10
    
    Job done!
    

    【讨论】:

    • 谢谢!兄弟,我想知道networking.dart?
    • 我自己的包,里面有关于HTTP请求的功能,你可以用http包代替
    • 我能再问你一个问题吗?你在那边写的 NetService 和你写的一样吗? stackoverflow.com/questions/66266936/…
    • 哥们,我上面说了你可以用http包,也就是用await http.get('http://yongwon-h.gne.go.kr/yongwon-h/main.do'),我的操作基本就是这样的。
    猜你喜欢
    • 2016-02-12
    • 2021-09-07
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    相关资源
    最近更新 更多