Nodejs+expressネットワーク画像を取得し、ローカルを保存
5160 ワード
Nodejs+expressネットワーク画像を取得し、ローカルを保存
使用するnodeテンプレートおよび依存レポート express superagent---superagentは軽量で漸進的なajax apiであり、可読性がよく、学習曲線が低く、内部依存nodejs原生の要求apiであり、nodejs環境下に適用する. superagent-charsetの役割:nodejs superagentを使用してウェブサイトの内容の中国語の文字化けし を這い出す cheerio node版jquery用法同jquery fs node内蔵テンプレートローカル に画像を保存するために使用
プロジェクトの作成ディレクトリmkdir reptile を作成 cd reptile npm initはpackageを生成する.json npm i express superagent superagent-charset cheerio --save
導入モジュール
もし私たちがwww.nanrentuを登るなら.cc/sgtp/リンクの画像はまずこのページの構造を分析します
リストの画像はすべてli内のimgラベルの中でcheerioを通じて私達は要素を得ることができます
次はソースを直接見ます
これで私たちは多くのイケメンの画像を私たちの現在のプロジェクトディレクトリのイメージフォルダの下に登りました.
使用するnodeテンプレートおよび依存レポート
プロジェクトの作成
導入モジュール
const express = require('express');
const superagent = require('superagent');
const charset = require('superagent-charset');
const cheerio = require('cheerio');
const fs = require('fs');
もし私たちがwww.nanrentuを登るなら.cc/sgtp/リンクの画像はまずこのページの構造を分析します
リストの画像はすべてli内のimgラベルの中でcheerioを通じて私達は要素を得ることができます
$('.wrap .h-sgtp-list .h-sgtp-box-m .h-piclist li')
次はソースを直接見ます
const express = require('express');
const superagent = require('superagent');
const charset = require('superagent-charset');
const cheerio = require('cheerio');
const fs = require('fs');
charset(superagent);
// https://www.nanrentu.cc/sgtp/
const baseUrl = 'https://www.nanrentu.cc/sgtp/';
const app = express();
app.get('/', (req, res) => {
//
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header('Access-Control-Allow-Headers', 'Content-Type');
superagent.get(baseUrl)
.charset('utf-8')
.end((err, data) => {
if (err) {
console.log(` :${err}`);
res.json({ code: 400, msg: err });
return;
}
const $ = cheerio.load(data.text);
const item = [];
$('.wrap .h-sgtp-list .h-sgtp-box-m .h-piclist li').each((index, element) => {
const $dom = $(element).find('img');
const imgSrc = $dom.attr('src');
item.push({
imgSrc: imgSrc
})
superagent.get(imgSrc).pipe(fs.createWriteStream(`./image/${index}.png`));
})
res.json({ code: 200, data: item });
})
})
app.listen(3333, () => {
console.log(' :localhost:3333');
})
これで私たちは多くのイケメンの画像を私たちの現在のプロジェクトディレクトリのイメージフォルダの下に登りました.