ajax+node+request爬取网络图片的实例(宅男福利)
作者:jingxian 发布时间:2024-05-05 09:21:11
标签:ajax,node,request,爬取图片
注:本文只讨论技术不涉及商业,如有侵权请告知,未经本人同意转载后果自负!
本文是通过浏览器端ajax,node端request-json进行爬取”尤果网“部分图片资源,纯属技术方面兴趣,不涉及商业方面;
先上图:
如果没有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有规则,并且页面中图片路径有规则的任何网站的图片爬取;
再次声明,不要随便那人家网站上的图片随便使用,学学技术就好,况且这个方法没什么技术含量,源码就不放了;
不说了,看图去了
来源:http://www.cnblogs.com/DIEW/archive/2017/08/27/7441029.html


猜你喜欢
- 我就废话不多说了,大家还是直接看代码吧!# -*- coding: utf-8 -*-"""Created o
- 作为数据分析师,掌握一门数据库语言,是很有必要的。今天黄同学就带着大家学习两个关系型数据库MySQL、Oracle,了解一个非关系数据库Mo
- 网站标准(或称“WEB标准”)对于每一个开发网站和做网页的人来说,都是不可忽视的,这不仅是一个潮流,而是一个标准,一个更加符合规范的做法,而
- 1.首先注册应用,获取 appkey、appsecretapi_url = "https://oapi.dingtalk.com/
- 目录应用场景福音快快使用模型类效果注意事项今天介绍一个后台开发神器,很适合当我们数据库中已存在了这些表,然后你想得到它们的model类使用O
- 作用:export和export default实现的功能相同,即:可用于导出(暴露)常量、函数、文件、模块等,以便其他文件调用。区别:1、
- 前言:我们知道,python代码文件大多数都是py类型。那么,能不能使用txt文件存储我们的代码呢?python这么强大的语言当然可以做大,
- 查了查《VBSCRIPT 速查手册》InstrRev的用法:InstrRev函数,功能:返回某字符串在另一个字符串中出现的从结尾计起的位置语
- 前言这篇文章将详细讲解开始图像形态学知识,主要介绍图像腐蚀处理和膨胀处理。数学形态学(Mathematical Morphology)是一种
- 本文实例讲述了php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法。分享给大家供大家参考,具体如下:微信支付a
- 访问指定节点: getElementsByName(): <html> <head> <title>DO
- 本篇已得到原作者Steve Dennis的翻译准予,在此Jorux表示感谢!本教程主要参考Creating a CSS Layo
- 当服务器必须提供与两个或更多个网络或网络子网的连接时,典型的方案是使用多宿主计算机。此计算机通常位于外围网络(也称为 DMZ、外围安全区域或
- 一、Flask蓝图目录我们之前写的Flask项目都是自己组织的目录结构,其实Flask官方有其推荐的目录结构,以下就是一个符合官方推荐的Fl
- 准备工作右击新建的项目,选择Python File,新建一个Python文件,然后在开头import cv2导入cv2库。转成灰度图像调用i
- 前言python 打开浏览器,可以做简单的刷网页的小程序 and 其他有想象力的程序。不过仅供学习,勿用非法用途。python的webbro
- 前言今天,我无聊的时候做了一个搜索文章的软件,有没有更加的方便快捷不知道,好玩就行了。基于Python tkinter 制作文章
- 做了一个网站,放到线上,用微信打开,点击分享,可是分享后发给朋友的链接卡片是微信默认自带的,如下: 这标题,描述以及图片是默认自带
- 简介在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL SER
- 本文实例讲述了Django框架创建mysql连接与使用。分享给大家供大家参考,具体如下:对于Django新手,你刚开始可以不使用MySQL数