node爬虫
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,node是服务器端的语言,所以可以像python一样对网站进行爬取,下面就使用node对博客园进行爬取,得到其中所有的章节信息。第一步: 建立crawl文件,然后npm init。第二步: 建立cra
千家信息网最后更新 2025年02月01日node爬虫
node是服务器端的语言,所以可以像python一样对网站进行爬取,下面就使用node对博客园进行爬取,得到其中所有的章节信息。
第一步: 建立crawl文件,然后npm init。
第二步: 建立crawl.js文件,一个简单的爬取整个页面的代码如下所示:
var http = require("http");var url = "http://www.cnblogs.com";http.get(url, function (res) { var html = ""; res.on("data", function (data) { html += data; }); res.on("end", function () { console.log(html); });}).on("error", function () { console.log("获取课程结果错误!");});
即引入http模块,然后利用http对象的get请求,即一旦运行,相当于node服务器端发送了一个get请求请求这个页面,然后通过res返回,其中on绑定data事件用来不断地接受数据,最后end时我们就在后台打印出来。
这只是整个页面的一部分,我们可以在此页面审查元素,发现确实是一样的
我们只需要将其中的章节title和每一小节的信息爬到即可。
第三步: 引入cheerio模块,如下:(在gitbash中安装即可,cmd总是出问题)
cnpm install cheerio --save-dev
这个模块的引入,就是为了方便我们操作dom,就像jQuery一样。
第四步: 操作dom,获取有用信息。
var http = require("http");var cheerio = require("cheerio");var url = "http://www.cnblogs.com";function filterData(html) { var $ = cheerio.load(html); var items = $(".post_item"); var result = []; items.each(function (item) { var tit = $(this).find(".titlelnk").text(); var aut = $(this).find(".lightblue").text(); var one = { title: tit, author: aut }; result.push(one); }); return result;}function printInfos(allInfos) { allInfos.forEach(function (item) { console.log("文章题目 " + item["title"] + '\n' + "文章作者 " + item["author"] + '\n'+ '\n'); });}http.get(url, function (res) { var html = ""; res.on("data", function (data) { html += data; }); res.on("end", function (data) { var allInfos = filterData(html); printInfos(allInfos); });}).on("error", function () { console.log("爬取博客园首页失败")});
即上面的过程就是在爬取博客的题目和作者。
最终后台输出如下:
这和博客园首页的内容是一致的:
博客
页面
信息
模块
作者
后台
就是
文件
文章
服务器
章节
题目
首页
服务
一致
不断
事件
代码
元素
内容
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
通讯网络技术专利
苹果手机游戏服务器或网络异常
用友数据库中余额表翻倍
数据库差集怎么写
dna数据库建立的成本问题
云服务器分布式存储安全
万能网络安全钥匙下载
2021第五季网络安全大赛
win7配置web服务器
银川网络安全支队
正版软件开发外包
云服务器设置两个ip
福州纵腾网络技术有限公司
腾讯云服务器怎么固定
计算机网络技术试题1
软件开发取什么名好
电子网络安全活动记事
山西快云软件开发地址
免安装 服务器
小学生网络安全知识比赛题目
db2查看数据库版本
总结数据库应包括的安全策略
湖北软件开发技术
目前我社常用的软件开发模型
网络安全三级教育培训心得体会
轻松搭建网络服务器
服务器主板上有哪些芯片
数据库密文索引技术
编程规范数据库设计
c 获取数据库行数