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 相关文章推荐
Auntion-TableSort国人写的一个javascript表格排序的东西
Nov 12 Javascript
基于jquery的inputlimiter 实现字数限制功能
May 30 Javascript
Dom 学习总结以及实例的使用介绍
Apr 24 Javascript
EasyUI中的dataGrid的行内编辑
Jun 22 Javascript
js+html5实现复制文字按钮
Jul 15 Javascript
详解前端路由实现与react-router使用姿势
Aug 07 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
Sep 17 Javascript
每个 JavaScript 工程师都应懂的33个概念
Oct 22 Javascript
vue 根据选择条件显示指定参数的例子
Nov 09 Javascript
小程序如何写动态标签的实现方法
Feb 05 Javascript
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
Vue常用API、高级API的相关总结
Feb 02 Vue.js
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自定义函数返回多个值
2006/11/26 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
PHP 返回数组后处理方法(开户成功后弹窗提示)
2017/07/03 PHP
Laravel框架实现的批量删除功能示例
2019/01/16 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
JavaScript设计模式之工厂模式和构造器模式
2015/02/11 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
JS简单测试循环运行时间的方法
2016/09/04 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
vue小白入门教程
2018/04/02 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
主键(Primary Key)约束和唯一性(UNIQUE)约束的区别
2013/05/29 面试题
介绍一下Ruby的多线程处理
2013/02/01 面试题
租房协议书
2014/04/10 职场文书
安全生产承诺书范文
2014/05/22 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
交通事故委托书范本
2014/09/28 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
2014年学校党建工作总结
2014/11/11 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
《乘法分配律》教学反思
2016/02/24 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android