我最近开始使用dart& amp;开发一个动物收容所应用程序.扑了一下,碰到了问题.
这个想法是有一个捐赠页面,用户可以选择为狗狗购买食物.开放式脚手架将显示食物的图片,并从销售所述食物的网站和当前价格中获取一些数据.图像作为资产存储在本地,但我想从网站上获取至少价格,因此它始终是最新的.
我按照flutter.io上的教程,但问题是http.get返回网站的整个代码,而不仅仅是我指定的部分(description_tab).我试过检查异步和放大器dart:转换文档,但到目前为止,我还没有找到任何可以帮助从HTML网站抓取特定内容的东西,使用div标签.
这就是我能够获取网站的整个HTML代码的方式:
Future fetchPost() async {
final response = await http.get(
'https://www.petissimo.hu/kutyaknak/szarazeledelek/josera/josera-active.html');
final json = JSON.decode(response.body);
return new JoseraAdultActive.fromJson(json);
}
class JoseraAdultActive {
final String description;
final String price;
JoseraAdultActive({this.description,this.price});
factory JoseraAdultActive.fromJson(Map json) {
return new JoseraAdultActive(
description: json['description_tab'],price: json['product_price_from']);
}
}
这是我显示提取信息的地方:
new Container(
padding: const EdgeInsets.only(top: 10.0,right: 5.0),child: new FutureBuilder(
future: fetchPost(),builder: (context,snapshot) {
if (snapshot.hasData) {
return new Text('');
} else if (snapshot.hasError) {
return new Text('Error');
}
return new CircularProgressIndicator();
})),
我还认为JSON.decode不能用于HTML代码,但找不到任何可以使用的东西.试图通过子串切片它也不起作用.
在此先感谢您的帮助!