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实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
用客户端js实现带省略号的分页
Apr 27 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
May 12 Javascript
巧用数组制作图片切换js代码
Nov 29 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
Jan 17 Javascript
解决vue项目打包后提示图片文件路径错误的问题
Jul 04 Javascript
JavaScript创建对象的四种常用模式实例分析
Jan 11 Javascript
原生JS检测CSS3动画是否结束的方法详解
Jan 27 Javascript
微信小程序实现订单倒计时
Nov 01 Javascript
在vue中利用全局路由钩子给url统一添加公共参数的例子
Nov 01 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
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
关于PHP实现异步操作的研究
2013/02/03 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
PHP生成随机码的思路与方法实例探索
2019/04/11 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
Iframe 自适应高度并实时监控高度变化的js代码
2009/10/30 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
jquery禁用右键示例
2014/04/28 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
JS和css实现检测移动设备方向的变化并判断横竖屏幕
2015/05/25 Javascript
window.onerror()的用法与实例分析
2016/01/27 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
2020/09/01 Javascript
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Django实现分页功能
2018/07/02 Python
Python中的heapq模块源码详析
2019/01/08 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
python的turtle库使用详解
2019/05/10 Python
html5 canvas 简单画板实现代码
2012/01/05 HTML / CSS
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
护士自荐信
2013/10/25 职场文书
三年级数学教学反思
2014/01/31 职场文书
企业活动策划方案
2014/06/02 职场文书
稽核岗位职责范本
2015/04/13 职场文书
聊一聊python常用的编程模块
2021/05/14 Python
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python