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 相关文章推荐
发现的以前不知道的函数
Sep 19 Javascript
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
Aug 08 Javascript
javascript实现上传图片前的预览(TX的面试题)
Aug 20 Javascript
关于JAVASCRIPT urldecode URL解码的问题
Jan 08 Javascript
JQuery仿小米手机抢购页面倒计时效果
Dec 16 Javascript
编写高质量JavaScript代码的基本要点
Mar 02 Javascript
AngularJS 中的Promise --- $q服务详解
Sep 14 Javascript
详解如何构建Angular项目目录结构
Jul 13 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
Sep 19 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
koa+jwt实现token验证与刷新功能
May 30 Javascript
js实现无缝轮播图插件封装
Jul 31 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
ThinkPHP实现登录退出功能
2017/06/29 PHP
jQuery的$.proxy()应用示例介绍
2014/04/03 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
javascript中setInterval的用法
2015/07/19 Javascript
基于Bootstrap3表格插件和分页插件实例详解
2016/05/17 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
解决jquery appaend元素中id绑定事件失效的问题
2017/09/12 jQuery
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
小程序如何获取多个formId实现详解
2019/09/20 Javascript
JS实现单张或多张图片持续无缝滚动的示例代码
2020/05/10 Javascript
仿照Element-ui实现一个简易的$message方法
2020/09/14 Javascript
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
python统计字符串中指定字符出现次数的方法
2015/04/04 Python
python基于multiprocessing的多进程创建方法
2015/06/04 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
在django-xadmin中APScheduler的启动初始化实例
2019/11/15 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
python处理RSTP视频流过程解析
2020/01/11 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
廉政教育心得体会
2014/01/01 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
事业单位个人总结
2015/02/12 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书
在Java中Collection的一些常用方法总结
2021/06/13 Java/Android
html5 录制mp3音频支持采样率和比特率设置
2021/07/15 Javascript
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android