ajax+node+request爬取网络图片的实例(宅男福利)


Posted in Javascript onAugust 28, 2017

注:本文只讨论技术不涉及商业,如有侵权请告知,未经本人同意转载后果自负!

本文是通过浏览器端ajax,node端request-json进行爬取”尤果网“部分图片资源,纯属技术方面兴趣,不涉及商业方面;

先上图:

ajax+node+request爬取网络图片的实例(宅男福利)

如果没有node基础请自行学习~

获取图片原理:通过request请求html文件,利用正则匹配图片路径获取到当前页面图片的数组,发送到浏览器端,进行展示;

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');

//设置静态文件如:图片, 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": '服务异常'
});
});
module.exports = app;

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

此时服务运行在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);


//这里就是当前页面的路径以及页面上图片列表的数组,通过res.json发送到client;

res.json({"url":url,"records":arr});
});
})

该方法适用于页面url有规则,并且页面中图片路径有规则的任何网站的图片爬取;

再次声明,不要随便那人家网站上的图片随便使用,学学技术就好,况且这个方法没什么技术含量,源码就不放了;

不说了,看图去了

以上这篇ajax+node+request爬取网络图片的实例(宅男福利)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用jquery实现等比例缩放图片效果插件
Jul 24 Javascript
在多个页面使用同一个HTML片段的代码
Mar 04 Javascript
javascript 常用功能总结
Mar 18 Javascript
防止浏览器记住用户名及密码的简单实用方法
Apr 22 Javascript
使用Jquery实现点击文字后变成文本框且可修改
Sep 21 Javascript
js实现星星打分效果的方法
Jul 05 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
jqueryMobile使用示例分享
Jan 12 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
element-ui 中使用upload多文件上传只请求一次接口
Jul 19 Javascript
js排序与重组的实例讲解
Aug 28 #Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
Aug 28 #Javascript
JS自定义函数实现时间戳转换成date的方法示例
Aug 27 #Javascript
JavaScript学习笔记之惰性函数示例详解
Aug 27 #Javascript
Vue实现typeahead组件功能(非常靠谱)
Aug 26 #Javascript
vue下跨域设置的相关介绍
Aug 26 #Javascript
客户端(vue框架)与服务器(koa框架)通信及服务器跨域配置详解
Aug 26 #Javascript
You might like
php在线打包程序源码
2008/07/27 PHP
PHP Socket 编程
2010/04/09 PHP
PHP常用技巧总结(附函数代码)
2012/02/04 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
jQuery中:radio选择器用法实例
2015/01/03 Javascript
浅谈js中变量初始化
2015/02/03 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
javascript运动框架用法实例分析(实现放大与缩小效果)
2016/01/08 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
使用Object.defineProperty实现简单的js双向绑定
2016/04/15 Javascript
jQuery中设置form表单中action值的实现方法
2016/05/25 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
送你43道JS面试题(收藏)
2019/06/17 Javascript
[13:21]DOTA2国际邀请赛采访专栏:RSnake战队国士无双,Fnatic.Fly
2013/08/06 DOTA
Python实现扫描局域网活动ip(扫描在线电脑)
2015/04/28 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python加密方法小结【md5,base64,sha1】
2017/07/13 Python
python实现简单五子棋游戏
2019/06/18 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
python numpy--数组的组合和分割实例
2020/02/24 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
2020/11/24 Python
linux面试题参考答案(11)
2016/11/26 面试题
电脑销售顾问自荐信
2014/01/29 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
综合实践活动报告
2015/02/05 职场文书
运动会5000米加油稿
2015/07/21 职场文书
python之json文件转xml文件案例讲解
2021/08/07 Python
JavaCV实现照片马赛克效果
2022/01/22 Java/Android