【发布时间】:2021-07-03 10:16:44
【问题描述】:
我有这个 dart 代码,但每次运行它都会给出不同的输出
重现步骤 将两个文件添加到同一目录 运行
飞镖酒吧获得
飞镖代码.dart
它将创建十个具有不同内容的文件
创建一个名为 code.dart 的文件
import "dart:io";
import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:html/parser.dart';
Future<String> scrapLyrics(String lyricsUrl) async {
final response = await http.get(Uri.parse(lyricsUrl));
var document = parse(response.body);
return document.getElementsByClassName('lyrics')[0].text;
}
main() async {
String ly;
for (int i = 1; i <=10; i++) {
print("Request number $i");
try{
ly= await scrapLyrics("https://www.genius.com/The-chainsmokers-closer-lyrics");
}
catch(e){
ly=e.toString();
}
File file = File("file$i.txt");
await file.writeAsString("$ly");
ly="";
}
}
创建文件 pubspec.yaml
name: my_app
environment:
sdk: '>=2.10.0 <3.0.0'
dependencies:
http: ^0.13.3
html: ^0.15.0
获得的输出(在某些情况下): RangeError(索引):无效值:有效值范围为空:0
【问题讨论】:
标签: html http dart web-scraping