溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ajax+node+request爬取網(wǎng)絡(luò)圖片的實例(宅男福利)

發(fā)布時間:2020-09-06 09:31:15 來源:腳本之家 閱讀:154 作者:jingxian 欄目:web開發(fā)

注:本文只討論技術(shù)不涉及商業(yè),如有侵權(quán)請告知,未經(jīng)本人同意轉(zhuǎn)載后果自負!

本文是通過瀏覽器端ajax,node端request-json進行爬取”尤果網(wǎng)“部分圖片資源,純屬技術(shù)方面興趣,不涉及商業(yè)方面;

先上圖:

ajax+node+request爬取網(wǎng)絡(luò)圖片的實例(宅男福利)

如果沒有node基礎(chǔ)請自行學(xué)習(xí)~

獲取圖片原理:通過request請求html文件,利用正則匹配圖片路徑獲取到當(dāng)前頁面圖片的數(shù)組,發(fā)送到瀏覽器端,進行展示;

1.安裝request-json (cnpm i request-json --save)

2.安裝express(cnpm i express --save)

3.新建一個app.js文件,作為server文件,代碼如下

const express = require("express");
const morgan = require('morgan');
const ejs = require('ejs');
const path = require('path');
const bodyParser = require('body-parser');
const app = express();

//logs info to server
app.use(morgan('dev'));

//post resolve
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));

// view engine setup
app.engine('html', ejs.__express);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');

//設(shè)置靜態(tài)文件如:圖片, CSS, JavaScript 等。
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(express.static(path.join(__dirname, 'public')));

/*
* reuire pages
*/
var index = require('./routes/index')

/*
* render pages
*/
app.use('/', index);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};

// render the error page
res.status(err.status || 500);
res.render('error', {
"title": '404',
"msg": '服務(wù)異常'
});
});
module.exports = app;

app.listen(3000,function(){
console.log('http://127.0.0.1:3000')
});

此時服務(wù)運行在3000端口;

4.請求html頁面:

router.all("/getUGirls",function(req,res,next){

正則部分代碼(……)

client.get(url,function(err, response, body) {
  if((typeof body)!="string"){
    body = JSON.stringify(body);
  }
  arr =body.match(reg);
  console.log(arr);

  //這里就是當(dāng)前頁面的路徑以及頁面上圖片列表的數(shù)組,通過res.json發(fā)送到client;
  res.json({"url":url,"records":arr});
});
})

該方法適用于頁面url有規(guī)則,并且頁面中圖片路徑有規(guī)則的任何網(wǎng)站的圖片爬?。?/p>

再次聲明,不要隨便那人家網(wǎng)站上的圖片隨便使用,學(xué)學(xué)技術(shù)就好,況且這個方法沒什么技術(shù)含量,源碼就不放了;

不說了,看圖去了

以上這篇ajax+node+request爬取網(wǎng)絡(luò)圖片的實例(宅男福利)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI