博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NodeJS简单爬虫
阅读量:6095 次
发布时间:2019-06-20

本文共 1423 字,大约阅读时间需要 4 分钟。

NodeJS简单爬虫

  • 最近一直在追火星的一本书,然后每次都要去网站看,感觉很麻烦,于是,想起用爬虫爬取章节,务实派,说干就干!

爬取思路

  • 1、该网站的页面呈现出一定的规律
  • 2、使用NodeJS的request模块发起请求
  • 3、对获取到的数据进行处理
  • 4、使用NodeJS的fs模块将数据写入文件

源码说明

//声明需要的模块var request = require('request');var fs=require("fs");//小说章节的标题var title="";//小说章节的内容var article="";//对应的网页序号var i=1;//写入流var ws;var get=()=>{	//发起请求	request('http://www.nitianxieshen.com/'+i+'.html', function (error, response, body) {		try{			if (!error && response.statusCode == 200) {				//截取标题与段落			    title = body.match(/
([\s\S]*)<\/h1>/i)[0].split("
")[0]; article = body.match(/
([\s\S]*)<\/div>/i)[0].split("
")[0]; //去除多余的符号 title=title.replace("h1", "").replace("h1", "").replace(/[\r\n ]/g, ""); article=article.replace(/br/g, "\r\n").replace(/[]/g, ""); ws=fs.createWriteStream(title+".txt"); ws.write(title+"\r\n\r\n","utf8"); ws.write(article,"utf8"); ws.end(); console.log(title+".txt"+" 正在写入..."); ws.on("finish", ()=>console.log("写入完成!")); ws.on("error", ()=>console.log("写入错误!")); } }catch(err){ //部分章节的序号不连续,不要停止,等待自动爬取完就好,打印出该log后自动无视掉 //好吧,其实后面有一段挺长的不连续的...有兴趣的可以再加个判断条件 console.log("本次爬取失败"); //目前更新的最新章节序号未到2900,确保能爬取完 if(i>2900) clearInterval(timer); } })}var timer=setInterval(function(){ get(); i++;}, 2000);//爬取的间隔时间不建议太短,1~2秒比较保险复制代码

效果

声明

  • 本文章仅供学习,爬取的资源请在爬取后的24小时内删除,勿将爬取到的东西商用,喜欢火星的可以支持火星哈。

转载于:https://juejin.im/post/5c9deb296fb9a05e3709274c

你可能感兴趣的文章
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
代码描述10313 - Pay the Price
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
vb sendmessage 详解1
查看>>
jquery用法大全
查看>>
Groonga 3.0.8 发布,全文搜索引擎
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
网卡驱动程序之框架(一)
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>