位置: 编程技术 - 正文

NodeJS制作爬虫全过程(node.js写爬虫)

编辑:rootadmin

推荐整理分享NodeJS制作爬虫全过程(node.js写爬虫),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node爬虫框架puppeteer,nodejs爬虫框架crawler,nodejs爬取数据,nodejs爬虫框架crawler,nodejs爬取数据,nodejs做爬虫,nodejs做爬虫,node js爬虫,内容如对您有帮助,希望把文章链接给更多的朋友!

今天来学习alsotang的爬虫教程,跟着把CNode简单地爬一遍。

建立项目craelr-demo我们首先建立一个Express项目,然后将app.js的文件内容全部删除,因为我们暂时不需要在Web端展示内容。当然我们也可以在空文件夹下直接 npm install express来使用我们需要的Express功能。

目标网站分析如图,这是CNode首页一部分div标签,我们就是通过这一系列的id、class来定位我们需要的信息。

使用superagent获取源数据

superagent就是ajax API来使用的Http库,它的使用方法与jQuery差不多,我们通过它发起get请求,在回调函数中输出结果。

它的res结果为一个包含目标url信息的对象,网站内容主要在其text(string)里。

使用cheerio解析

cheerio充当服务器端的jQuery功能,我们先使用它的.load()来载入HTML,再通过CSS selector来筛选元素。

其结果为一个个对象,调用 .each(function(index, element))函数来遍历每一个对象,返回的是HTML DOM Elements。

输出 console.log($element.attr('title'));的结果为 广州 年月日 NodeParty 之 UC 场之类的标题,输出 console.log($element.attr('href'));的结果为 /topic/cbecbcbeb2之类的url。再用NodeJS1的url.resolve()函数来补全完整的url。

NodeJS制作爬虫全过程(node.js写爬虫)

使用eventproxy来并发抓取每个主题的内容教程上展示了深度嵌套(串行)方法和计数器方法的例子,eventproxy就是使用事件(并行)方法来解决这个问题。当所有的抓取完成后,eventproxy接收到事件消息自动帮你调用处理函数。

结果如下

扩展练习(挑战)

获取留言用户名和积分

在文章页面的源码找到评论的用户class名,classname为reply_author。console.log第一个元素 $('.reply_author').get(0)可以看到,我们需要获取东西都在这里头。

首先,我们先对一篇文章进行抓取,一次性把需要的都得到即可。

我们可以通过 $('.big').text().trim()即为积分信息。

使用cheerio的函数.get(0)为获取第一个元素。

这只是对于单个文章的抓取,对于个还有需要修改的地方。

NodeJS制作爬虫全过程(续) 书接上回,我们需要修改程序以达到连续抓取个页面的内容。也就是说我们需要输出每篇文章的标题、链接、第一条评论、评论用户和论坛积分。如图

sails框架的学习指南 上周通过搭建CMS系统接触到了sails框架,知道一些ORM的概念。这周开始深入后台数据交互,发现twenty框架的数据结构在sails上又设计了一番(比如node、cat

node.js开机自启动脚本文件 #!/bin/bash###BEGININITINFO#Provides:xiyoulib#Required-Start:$all#Required-Stop:$all#Default-Start:#Default-Stop:#Short-Description:Startdaemonatboottime#Description:Enableserviceprovidedbydaem

标签: node.js写爬虫

本文链接地址:https://www.jiuchutong.com/biancheng/374215.html 转载请保留说明!

上一篇:了不起的node.js读书笔记之mongodb数据库交互(了不起的女孩)

下一篇:NodeJS制作爬虫全过程(续)(nodejs爬虫框架crawler)

  • 住宿费收据属于什么凭证
  • 小企业会计准则和一般企业会计准则的区别
  • 受托代销商品和受托代销商品款怎么列示
  • 一般纳税人取得普票怎么做账
  • 年报财务报表在哪里申报
  • 可供出售金融资产和长期股权投资
  • 公司简易注销需要清算吗
  • 股权出让需要交税吗
  • 路桥年费税额抵扣账务处理怎么做?
  • 当月预交增值税时所属期选了上期怎么办
  • 运输费计入采购成本的分录
  • 发票认证但未抵扣需要在报表里填吗
  • 查账征收所得税计税依据
  • 税率开错跨月没法收回
  • 生产成本和主营业务成本哪个大
  • 全资子公司如何证明自己的财产完全独立于母公司
  • 建筑业可以开电费发票吗
  • 公司没有发票的做内账,那么支付款从哪里来
  • 接受应税劳务的会计分录
  • 自建厂房转固定资产如何办理手续
  • 去年的发票可以红冲重新开具吗?
  • 电脑管家系统异常要修复吗
  • 如何使用腾讯电子签
  • win10专业版如何改为家庭版
  • linux获取操作命令的使用方法
  • win11预览版体验
  • 基建项目和工程项目区别
  • php文件怎么写
  • 注册资本认缴可以增加吗
  • vue组件用法
  • 史上无敌的超级兵王
  • 长期待摊当期发票怎么开
  • 生产型外资企业
  • 计提和发放工资金额不一致
  • ps像素分辨率什么意思
  • 初学者应该看什么书
  • 怎么连接php
  • 利得都需要缴纳企业所得税吗
  • access中文版
  • 利润总额包括的内容主要有
  • 解决PostgreSQL服务启动后占用100% CPU卡死的问题
  • 或有资产怎么处理
  • 个人提供劳务报酬如何交税
  • 本月销售商品会计分录
  • 盘盈固定资产明细表
  • 以股权入资该怎么办
  • 社会团体费用支出有什么要求
  • 物流公司驾驶员安全教育培训
  • 付款申请单如何管理
  • 销售货物时发票多开了金额如何处理?
  • 一般纳税人免税额度
  • 企业发生的各项罚款收入应计入
  • 进项税销项税分录
  • 税金及附加没有设置二级科目,有啥影响吗
  • 清卡流程图
  • 帮客户支付的机票计入什么科目
  • 审核记账凭证的心得
  • ubuntu kylin 14.10下多个mysql 5.7.14安装教程
  • mysql 5.6.23 winx64.zip安装详细教程
  • 详述社会体育学科的研究对象
  • ubuntu 16.04
  • linux命令sed -i
  • linux cat 命令
  • centos 安装7z
  • fs是什么文件
  • pm2使用手册
  • 老生常谈的例句
  • 下载器广告
  • html竖排改为横排
  • android layout布局
  • bootstrap要学吗
  • 批处理重命名文件名
  • 单例类python
  • axios使用jsonp
  • javascript入门基础
  • shell脚本传参数给命令
  • jquery获取动态生成的元素的值
  • 浙江省电子税务局手机开票入口
  • 山东农村土地补贴每亩多少
  • 2020年安徽省护理技能大赛视频播放
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设