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 相关文章推荐
不错的asp中显示新闻的功能
Oct 13 Javascript
获取dom元素那些讨厌的位置封装代码
Jun 23 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
asm.js使用示例代码
Nov 28 Javascript
JavaScript中定义函数的三种方法
Mar 12 Javascript
一个字符串中出现次数最多的字符 统计这个次数【实现代码】
Apr 29 Javascript
Node.js测试中的Mock文件系统详解
Nov 21 Javascript
jQuery select自动选中功能实现方法分析
Nov 28 Javascript
用vue快速开发app的脚手架工具
Jun 11 Javascript
在vue项目中使用codemirror插件实现代码编辑器功能
Aug 27 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 Javascript
javascript实现固定侧边栏
Feb 09 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实现二维数组中的查找算法小结
2018/06/09 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
2020/05/15 PHP
[HTML/CSS/Javascript]WWTJS
2007/09/25 Javascript
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
Jqyery中同等与js中windows.onload的应用
2011/05/10 Javascript
基于jQuery的公告无限循环滚动实现代码
2012/05/11 Javascript
JS事件在IE与FF中的区别详细解析
2013/11/20 Javascript
js只执行1次的函数示例
2016/07/20 Javascript
JS打印组合功能
2016/08/04 Javascript
学好js,这些js函数概念一定要知道【推荐】
2017/01/19 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
jQuery实现手机号正则验证输入及自动填充空格功能
2018/01/02 jQuery
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
Python、Javascript中的闭包比较
2015/02/04 Python
举例讲解Python中的Null模式与桥接模式编程
2016/02/02 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python yield和Generator函数用法详解
2020/02/10 Python
利用 PyCharm 实现本地代码和远端的实时同步功能
2020/03/23 Python
django 读取图片到页面实例
2020/03/27 Python
python 将视频 通过视频帧转换成时间实例
2020/04/23 Python
python可以用哪些数据库
2020/06/22 Python
Python爬虫与反爬虫大战
2020/07/30 Python
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
逻辑链路控制协议
2016/10/01 面试题
县委务虚会发言材料
2014/10/20 职场文书
云冈石窟导游词
2015/02/04 职场文书
活动总结模板大全
2015/05/11 职场文书
计算机教师工作总结
2015/08/13 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
Python中tkinter的用户登录管理的实现
2021/04/22 Python
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python