var
headers
= {
'User-Agent':
'Mozilla/5.0 (iPhone
var
res
= await http.get(
page
==
1
? 'https://www.mzitu.com'
: 'https://www.mzitu.com/page/$page/',
headers: headers)
if (
res.statusCode
==
200
) {
String
body
= res.body
Document
dom
= parse(body)
var
imgs
= dom.querySelectorAll(
'#pins > li > a > img'
)
imgs.forEach((v) {
String
filename
= v.attributes[
'alt'
]
Download.image(
v.attributes
['data-original']
,
filename.replaceAll(' ', ''),
{'Referer': 'https://www.mzitu.com/'})
} catch (e) {
print(e)
复制代码
图片下载
妹子图下载需要设置referer
class Download {
static image(url, fileName, [Map<String, String> headers]) async {
try {
var res = await http.get(url, headers: headers);
var image = img.decodeImage(res.bodyBytes);
await File('./img/${fileName}.png').writeAsBytes(img.encodePng(image));
} catch (e) {
print(e);
复制代码
豆瓣
douban([page = 1]) async {
try {
var headers = {
'User-Agent':
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
var res = await http.get(
'https://movie.douban.com/subject/3882715/reviews?start=${20 * page}',
headers: headers);
if (res.statusCode == 200) {
String body = res.body;
Document dom = parse(body);
var items = dom.querySelectorAll('.main.review-item');
items.forEach((v) {
String name = v.querySelector('.name').text.trim();
String avator = v.querySelector('.avator img').attributes['src'];
String content = v.querySelector('.short-content').text.trim();
String time = v.querySelector('.main-meta').text.trim();
print(
{'name': name, 'avatar': avator, 'content': content, 'time': time});
} catch (e) {
print(e);
复制代码
展示
github