先打一个简单的通用框子

//根据爬取网页的协议 引入对应的协议, http||https
var http = require('https');
//引入cheerio 简单点讲就是node中的jquery jquery写法获取所得页面dom元素
var cheerio = require('cheerio');
//目标网址 这里是图片网址
var url = '';
//文件读写
var fs = require('fs');
//发送request请求
var request = require('request');
//防止中文乱码
var iconv = require('iconv-lite'); function getimage(url, page) {
//采用http模块向服务器发起一次get请求
http.get(url, function (res) { //get到x网址,成功执行回调函数
var html = ''; //用来存储请求网页的整个html内容
var htmlarr = [];
var htmllength = 0;
//监听data事件,每次取一块数据
res.on('data', function (chunk) {
// html += chunk;
htmlarr.push(chunk);
htmllength += chunk.length;
});
//监听end事件,如果整个网页内容的html都获取完毕,就执行回调函数
res.on('end', function () {
html = Buffer.concat(htmlarr,htmllength);
html = iconv.decode(html,'gb2312');
var $ = cheerio.load(html,{decodeEntities: false}); //采用cheerio模块解析html
//fs.stat 判断文件夹是否存在 ./2717/
fs.stat("./2717/" + page, (err, stats) => {
if(stats){
save($,page)
return
}
// fs.mkdir 没有文件夹就创建文件
fs.mkdir("./2717/" + page, function (err) {
if (err) {
return console.error(err);
}
save($,page)
});
});
});
}).on('error', function (err) { //http模块的on data,on end ,on error事件
console.log(err);
});
}
function save($,page){
var imgarr = [];
console.log($('.w1200 .w1200 .w110 img').length);
$('.w1200 .w1200 .w110 img').each(function (val, index) {
var obj = {
url: $(this).attr('src'),
alt: $(this).attr('alt')
}
if('夏天少女系清新漂亮美甲背景图片' == $(this).attr('alt')) console.log($(this).attr('src'));
imgarr.push(obj)
request(encodeURI($(this).attr('src'))).pipe(fs.createWriteStream("./2717/" + page+'/'+$(this).attr('alt')+'.jpg'));
});
fs.appendFile("./2717/" + page+'/备注.txt', JSON.stringify(imgarr), 'utf-8', function (err) {
if (err) {
console.log(err);
}
});
}
for(var i = 1 ;i<12;i++){
url='https://www.2717.com/beautiful/beijingtupian/list_24_'+i+'.html';
getimage(url, i);
}

  

  上面的 html 就是页面所有的内容,就跟你谷歌浏览器 f12之后的elements 看到的一样,

这个只能爬静态页面,用ajax渲染的页面爬不到。

本人qq  :981900309

node js 爬虫爬取静态页面,的更多相关文章

  1. Node.js 爬虫爬取电影信息

    Node.js 爬虫爬取电影信息 我的CSDN地址:https://blog.csdn.net/weixin_45580251/article/details/107669713 爬取的是1905电影 ...

  2. Node.js爬虫-爬取慕课网课程信息

    第一次学习Node.js爬虫,所以这时一个简单的爬虫,Node.js的好处就是可以并发的执行 这个爬虫主要就是获取慕课网的课程信息,并把获得的信息存储到一个文件中,其中要用到cheerio库,它可以让 ...

  3. 养只爬虫当宠物(Node.js爬虫爬取58同城租房信息)

    先上一个源代码吧. https://github.com/answershuto/Rental 欢迎指导交流. 效果图 搭建Node.js环境及启动服务 安装node以及npm,用express模块启 ...

  4. 手把手教你用Node.js爬虫爬取网站数据

    个人网站 https://iiter.cn 程序员导航站 开业啦,欢迎各位观众姥爷赏脸参观,如有意见或建议希望能够不吝赐教! 开始之前请先确保自己安装了Node.js环境,还没有安装的的童鞋请自行百度 ...

  5. node.js爬虫爬取拉勾网职位信息

    简介 用node.js写了一个简单的小爬虫,用来爬取拉勾网上的招聘信息,共爬取了北京.上海.广州.深圳.杭州.西安.成都7个城市的数据,分别以前端.PHP.java.c++.python.Androi ...

  6. node:爬虫爬取网页图片

    代码地址如下:http://www.demodashi.com/demo/13845.html 前言 周末自己在家闲着没事,刷着微信,玩着手机,发现自己的微信头像该换了,就去网上找了一下头像,看着图片 ...

  7. Scrapy爬取静态页面

    Scrapy爬取静态页面 安装Scrapy框架: Scrapy是python下一个非常有用的一个爬虫框架 Pycharm下: 搜索Scrapy库添加进项目即可 终端下: #python2 sudo p ...

  8. python网络爬虫(10)分布式爬虫爬取静态数据

    目的意义 爬虫应该能够快速高效的完成数据爬取和分析任务.使用多个进程协同完成一个任务,提高了数据爬取的效率. 以百度百科的一条为起点,抓取百度百科2000左右词条数据. 说明 参阅模仿了:https: ...

  9. python爬虫爬取汽车页面信息,并附带分析(静态爬虫)

    环境: windows,python3.4 参考链接: https://blog.csdn.net/weixin_36604953/article/details/78156605 代码:(亲测可以运 ...

随机推荐

  1. noj算法 迷宫问题 回溯法

    描述: 给一个20×20的迷宫.起点坐标和终点坐标,问从起点是否能到达终点. 输入: 多个测例.输入的第一行是一个整数n,表示测例的个数.接下来是n个测例,每个测例占21行,第一行四个整数x1,y1, ...

  2. 再见,Python!你好,Go语言

    Go 语言诞生于谷歌,由计算机领域的三位宗师级大牛 Rob Pike.Ken Thompson 和 Robert Griesemer 写成.由于出身名门,Go 在诞生之初就吸引了大批开发者的关注.诞生 ...

  3. selenium之 webdriver与三大浏览器版本映射表(更新至v2.29)

    1.chrome浏览器 chromedriver版本 支持的Chrome版本 v2.29 v56-58 v2.28 v55-57 v2.27 v54-56 v2.26 v53-55 v2.25 v53 ...

  4. Java实现大数加法运算的几种方法

    大数加法 思路一:定义String变量str1和str2分别存储输入的两个大数,定义num1[]和num2[]两个int型数组,将两个字符串分别逐个字符逆序存入数组,定义sum[]数组存放求和结果,使 ...

  5. jupyter notebooks 中键盘快捷键

    键盘快捷键——节省时间且更有生产力! 快捷方式是 Jupyter Notebooks 最大的优势之一.当你想运行任意代码块时,只需要按 Ctrl+Enter 就行了.Jupyter Notebooks ...

  6. Autofac 依赖注入框架 使用

    简介 Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高. 官方网站http://autofac.org/ 源 ...

  7. 纯css画直角三角形

    所有的三角形,都是通过盒子模型来设定. border(边框)的不同大小来决定 border-width: 边框的宽度 border-style: 边框的样式 border-color: 边框的颜色 1 ...

  8. Win下必备神器之Cmder

    诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...

  9. 树莓派做coolpy服务器

    安装前需要了解的 1. coolpy是一个基于NodeJS的物联网平台(官网http://icoolpy.com). 注:国内物联网平台有乐联网,yeelink等,但只有coolpy是开源的. 2. ...

  10. python可视化pyecharts

    python可视化pyecharts 简单介绍 pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.用 Echarts 生成的图可视化 ...