Dart:
下载网页
如何操作:
Dart提供了http
包,这是一个用于进行HTTP请求的流行的第三方库。这里有一个使用它来下载网页的基本示例:
首先,将http
包添加到你的pubspec.yaml
中:
dependencies:
http: ^0.13.3
然后,导入包并使用它来获取网页的内容:
import 'package:http/http.dart' as http;
Future<void> main() async {
var url = Uri.parse('http://example.com');
var response = await http.get(url);
if (response.statusCode == 200) {
print('页面已下载:');
print(response.body);
} else {
print('请求失败,状态码:${response.statusCode}。');
}
}
样例输出(这将基于网页内容而有所不同):
页面已下载:
<!doctype html>
<html>
<head>
<title>示例域名</title>
...
</html>
对于更复杂的场景,如处理cookies或设置用户代理头,你会使用相同的http
包,但对你的请求进行额外配置:
import 'package:http/http.dart' as http;
Future<void> main() async {
var headers = {
'User-Agent': 'YourCustomUserAgent/1.0',
'Cookie': 'name=value; name2=value2',
};
var url = Uri.parse('http://example.com');
var response = await http.get(url, headers: headers);
if (response.statusCode == 200) {
print('页面已下载,使用自定义头:');
print(response.body);
} else {
print('请求失败,状态码:${response.statusCode}。');
}
}
使用这样的头信息可以更准确地模拟浏览器请求,这在处理有特定要求或防止抓取保护的网站时特别有用。