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 相关文章推荐
js限制textarea每行输入字符串长度的代码
Oct 31 Javascript
js控制iframe的高度/宽度让其自适应内容
Apr 09 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
jQuery同步提交示例代码
Dec 12 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
使用Node.js处理前端代码文件的编码问题
Feb 16 Javascript
js正则表达式验证密码强度【推荐】
Mar 03 Javascript
Javascript创建类和对象详解
May 31 Javascript
ReactNative列表ListView的用法
Aug 02 Javascript
BootStrap中Table隐藏后显示问题的实现代码
Aug 31 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 Javascript
详细分析Node.js 多进程
Jun 22 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
php5 图片验证码实现代码
2009/12/11 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
JavaScript中的slice()方法使用详解
2015/06/06 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
vue-cli 自定义指令directive 添加验证滑块示例
2017/10/19 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
js正则取值的结果数组调试方法
2018/10/10 Javascript
jQuery操作元素的内容和样式完整实例分析
2020/01/10 jQuery
vue路由权限校验功能的实现代码
2020/06/07 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
[07:47]DOTA2国际邀请赛采访专栏:探访Valve总部
2013/08/08 DOTA
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
浅析python 字典嵌套
2020/09/29 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
中学教师岗位职责
2013/11/26 职场文书
集体备课反思
2014/02/12 职场文书
搞笑爱情保证书
2014/04/29 职场文书
娱乐节目策划方案
2014/06/10 职场文书
企业精神口号
2014/06/11 职场文书
专题组织生活会方案
2014/06/15 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
天那边观后感
2015/06/09 职场文书
详解MySQL的内连接和外连接
2023/05/08 MySQL