30行代码实现简单的node爬取图片

今天不来是想学习vue的流体布局组件的,结果在打开网站的时候看见了这样的请求

看到这样的请求,内心就很激动  只不是只要增加后面的 数字就可以获取到图片地址了嘛  

所以果断的去写了一个nodejs爬取图片的 小代码。node代码起步特别简单,首先下载一些配件

const express = require('express')
const request = require('request');
const fs = require('fs')
const server = express()

//请求函数
let newUrl = 'https://lfyfly.github.io/vue-waterfall-easy/demo/'
function getData(pageNum) {
	let url = 'https://lfyfly.github.io/vue-waterfall-easy/demo/static/mock/data.json?group='
	url += pageNum
	request(url, function(error, response, body) {
		let arr = JSON.parse(response.body)
		for (let i = 0; i < arr.length; i++) {
			let url = newUrl + arr[i].src.substring(2)
			seveData(url, i)
		}	
	})
}
//保存到本地 文件地址可以为:'D:/'
function seveData(src, index) {
	let savePath="D:/"+index+'.jpg'
	var stream = fs.createWriteStream(savePath);
	request(src).on('error',function(){
		console.log('错误')
	}).pipe(stream).on('close',function(){})
}
getData(0)

这个代码就分为2个部分,第一个部分为请求回去地址,因为一开始得到的数据并不是是直接可以显示每一张图片的地址,所以需要做一些 拼接。

你可以 先把保存代码注释了,然后在看一下 请求里面的response.body是什么样子的你就能明白后面的  代码了 

我爬取的  网址是  https://lfyfly.github.io/vue-waterfall-easy/demo/#/

你们也可以去网站上直接看看  也能写出来。这里你可以学习到  首先是字符串截取  使用了 substring(i),截取几位。

fs.createWriteStream(path),文件流 

request(url).on('error',function(){}).pipe().on() //管道的形式来写入文件

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值