node爬虫
发表于:2024-09-30 作者:千家信息网编辑
千家信息网最后更新 2024年09月30日,node是服务器端的语言,所以可以像python一样对网站进行爬取,下面就使用node对博客园进行爬取,得到其中所有的章节信息。第一步: 建立crawl文件,然后npm init。第二步: 建立cra
千家信息网最后更新 2024年09月30日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安全错误
数据库的锁怎样保障安全
网络技术基础求ip地址
天津筑牢校园网络安全防护
供电所网络安全预案
公司的服务器怎么备案
获取当前数据库名
服务器看柯南
产品规格数据库表设计
oa服务器是什么系统
河南软件开发的未来发展
互联网科技公司的宗旨
有必要es和数据库都存吗
网络安全宣传周参与企业
兰州网络展厅中控服务器
同上一堂网络安全课观看
榆次触控拍照软件开发公司
服务器如何读取dtu
上游软件开发人员
如何达到数据库的3nf
服务器休克了是什么原因
烟台丛聚网络技术有限公司
知网查重的数据库仅限知网论文吗
但显示网络无法连接到服务器
银行网络安全要求
网络安全知识公约
快速理清数据库设计
如何快速学习网络安全
商丘软件开发报价
维护网络安全汇报
软件开发及服务行业龙头
安卓手机软件开发书籍推荐