我一直在尝试修改代码available here,以使VMoneyNews中的title
和dateAdded
在应用程序listView
中可见。
不幸的是,当我尝试运行以下已编辑的代码时,出现以下图像中指出的错误。
http.Response response = await http.get('https://www.virtualmoneysnews.com/category/bitcoin-news/');
//parse and extract the data from the web site
dom.Document document = parser.parse(response.body);
document.getElementsByTagName('article').forEach((child) {
jobsList.add(Job(
title: child.getElementsByClassName('title').first.text,
dateAdded: child.getElementsByClassName('thetime date updated').last.text,
));
});
最佳答案
您可能应该删除依赖于item.location
的该代码段,而无需填充它。
Text(
item.location.trim(),
style: TextStyle(
color: Colors.white, fontWeight: FontWeight.bold),
),
我将重构
Job
类以将其重命名为Article
,Headline
或Story
,即有意义的东西。例如:class Story {
String title;
String dateAdded;
Story(this.title, this.dateAdded);
@override
String toString() => '$title $dateAdded';
}
然后可以编写您的抓取代码:
http.Response response = await http
.get('https://www.virtualmoneysnews.com/category/bitcoin-news/');
dom.Document document = parser.parse(response.body);
List<Story> stories = document
.getElementsByTagName('article')
.map((e) => Story(
e.getElementsByClassName('title').first.text,
e.getElementsByClassName('thetime date updated').last.text,
))
.toList();
关于android - Flutter-解析HTML数据时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51899322/