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 相关文章推荐
Javascript 陷阱 window全局对象
Nov 26 Javascript
javascript 表单规则集合对象
Jul 21 Javascript
JSON格式的键盘编码对照表
Jan 29 Javascript
浅谈Javascript 数组与字典
Jan 29 Javascript
javascript输出AscII码扩展集中的字符方法
Dec 26 Javascript
WebSocket实现简单客服聊天系统
May 12 Javascript
详解VueJs中的V-bind指令
May 03 Javascript
微信小程序中的店铺评分组件及vue中用svg实现的评分显示组件
Nov 16 Javascript
vue路由教程之静态路由
Sep 03 Javascript
Vue的data、computed、watch源码浅谈
Apr 04 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
Apr 09 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
Nov 11 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
php定义参数数量可变的函数用法实例
2015/03/16 PHP
php实现用于验证所有类型的信用卡类
2015/03/24 PHP
PHP设计模式之观察者模式实例
2016/02/22 PHP
PHP浮点数的一个常见问题
2016/03/10 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
2016/04/01 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
PHP mysqli事务操作常用方法分析
2017/07/22 PHP
jQuery 入门讲解1
2009/04/15 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
怎么清空javascript数组
2013/05/11 Javascript
jquery给图片添加鼠标经过时的边框效果
2013/11/12 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
javascript打开word文档的方法
2014/04/16 Javascript
JavaScript使用setTimeout实现延迟弹出警告框的方法
2015/04/07 Javascript
Js的Array数组对象详解
2016/02/22 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
AngularJS 在同一个界面启动多个ng-app应用模块详解
2016/12/20 Javascript
JavaScript简单计算人的年龄示例
2017/04/15 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
微信小程序 scroll-view实现锚点滑动的示例
2017/12/06 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
python中黄金分割法实现方法
2015/05/06 Python
python用pickle模块实现“增删改查”的简易功能
2017/06/07 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
捷克街头、运动和滑板一站式商店:BoardStar.cz
2019/10/06 全球购物
党员违纪检讨书
2014/02/18 职场文书
青奥会口号
2014/06/12 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
CSS使用伪类控制边框长度的方法
2022/01/18 HTML / CSS