用node.js从零开始去写一个简单的爬虫

如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定,步骤其实很简单。node的安装就不一步步的解释了,如果不会可以自行百度。在node开大环境下开始第一步:

1:在d盘新建一个文件夹WebSpider

图片.png

2:cmd右键以管理员模式打开,进入d盘,cd 进入刚刚创建的文件夹里面 cd WebSpider

图片.png

3:mkdir FirstSpider (创建一个FirstSpider文件夹)

图片.png

创建FirstSpider文件夹之后的目录

图片.png

4:进入刚刚创建的文件夹里面 cd FirstSpider

图片.png

5: npm init (初始化工程)

此时需要填写一些项目信息,你可以根据情况填写,当然也可以一路回车。

图片.png

创建完项目后,会生成一个package.json的文件。该文件包含了项目的基本信息。

图片.png

图片.png

6:安装第三方包(后面程序会直接调用包的模块)

说明:由于http模块、fs模块都是内置的包,因此不需要额外添加。

这里安装cheerio包,和request包。request 用于发起http请求 cheerio 用于将下载下来的dom进行分析和提取 你可以把它当做jQuery来用

在cmd中,cd进入cd FirstSpider文件夹,然后执行命令: npm install cheerio –save

图片.png

安装完cheerio包后,继续安装request包, npm install request –save

图片.png

说明:npm(nodejs package manager),nodejs包管理器; –save的目的是将项目对该包的依赖写入到package.json文件中。

如果想要将爬取的数据和图片分类放好,那就事先建立一个data和image文件夹准备着。 在FirstSpider文件夹下新建

创建子文件夹data(用于存放所抓取的新闻文本内容)
创建子文件夹image(用于存放所抓取的图片资源)
创建一个first_spider文件

整个项目的目录结构如下图所示:

图片.png

7:重点内容,打开first_spider,并一行一行的敲代码,如果你不想写代码的话,去网站上找一些代码过来进行测试即可。

var request = require('request')
var cheerio = require('cheerio')
for(var i = 1;i<4;i++){
  request('http://www.souweixin.com/personal?t=41&p='+i,function(error,response,body){
    if(!error && response.statusCode == 200){
      $ = cheerio.load(body)
      var links = [];
        $(".boldBorder > a").each(function(i,item){
          links.push($(this).attr("href"))
        })
      for(var i=0;i<links.length;i++){
        request('http://www.souweixin.com'+links[i],function(error,response,body){
          if(!error && response.statusCode == 200){
            $ = cheerio.load(body)
            console.log('weixin: '+$('.bold').text()+'   name: '+$('h1').text()+'   desc: '+$('.f18').text());
          }
        })
      }
    }
  })
}

8:运行程序,命令很简单哦 在cmd命令行下,cd 到你创建工程文件夹FirstSpider下,然后 node first_spider.js 程序就跑起来了。

图片.png

9:注意:如果这个时候遇见这样的bug

图片.png

80端口被占用,这里额外的提一下: 解决端口被占用的问题:https://www.jianshu.com/p/a7fc19b0c2f1

找到这些端口,一个个关闭即可

图片.png

原文作者:祈澈姑娘 技术博客:https://www.jianshu.com/u/05f416aefbe1 90后前端妹子,爱编程,爱运营,爱折腾。 坚持总结工作中遇到的技术问题,坚持记录工作中所所思所见.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java技术栈

稍微有点难度的10道java面试题,你会几道?

1、jvm对频繁调用的方法做了哪些优化? 2、常见的攻击手段有哪些?如何防范? 3、restful api有哪些设计原则? 4、hessian是做什么用的?它的...

343100
来自专栏小白课代表

虚拟机:VMware 14 安装教程。

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

37120
来自专栏编程微刊

基于mpvue的小程序项目搭建的步骤步骤1. 检查下 Node.js 是否安装成功

21730
来自专栏开源优测

AutoMagic使用说明

自动化测试管理平台,可以进行用户、产品、项目、模块、测试用例、测试元素、测试关键字、测试报告的管理等。

10710
来自专栏小白课代表

软件分享 | AutoCAD 2014安装教程

2、打开安装包,双击安装程序,点击更改,选择解压目标文件夹,可在D盘或其它盘里面新建一个CAD2014文件夹,然后点击确定

26220
来自专栏猿天地

spring boot开发的日志系统

项目采用技术:springboot,mongodb,freemarker,bootstrap,highcharts等 这个项目还没做完,目前已完成的功能有下面几...

42990
来自专栏小白课代表

软件分享 | AutoCAD 2017安装教程

2、打开安装包,双击安装程序,点击更改,选择解压目标文件夹,可在D盘或其它盘里面新建一个CAD2017文件夹,然后点击确定

30920
来自专栏CLS日志服务

腾讯云CLS日志服务应用

*LogListener: 是腾讯云日志服务提供的日志采集 Agent,通过在服务器上安装loglistener可以实时采集指定路径上的日志,并对日志原始数据进...

47610
来自专栏知晓程序

想要快速获客?送你 2 个小程序互推方法 | 小程序问答 #47

今天,知晓程序(微信号 zxcx0101)就来手把手教你,小程序之间如何互相跳转、引导。

14360
来自专栏腾讯云服务器团队的专栏

腾讯云 CBS 性能测试用例参考

2、fio测试建议在空闲的、未保存重要数据的硬盘上进行,并在测试完后重新制作文件系统。请不要在业务数据硬盘上测试,避免底层文件系统元数据损坏导致数据损坏。

598130

扫码关注云+社区

领取腾讯云代金券