Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用node.js从零开始去写一个简单的爬虫

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

作者头像
王小婷
发布于 2025-05-18 05:59:48
发布于 2025-05-18 05:59:48
10500
代码可运行
举报
文章被收录于专栏:编程微刊编程微刊
运行总次数:0
代码可运行

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

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

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

cd WebSpider

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

创建FirstSpider文件夹之后的目录

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

5: npm init (初始化工程)

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

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

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

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

这里安装cheerio包,和request包。request 用于发起http请求

cheerio 用于将下载下来的dom进行分析和提取 你可以把它当做jQuery来用

在cmd中,cd进入cd FirstSpider文件夹,然后执行命令:

npm install cheerio –save

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

说明:npm(nodejs package manager),nodejs包管理器

–save的目的是将项目对该包的依赖写入到package.json文件中。

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

在FirstSpider文件夹下新建

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
创建子文件夹data(用于存放所抓取的新闻文本内容)
创建子文件夹image(用于存放所抓取的图片资源)
创建一个first_spider文件

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 程序就跑起来了。

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

80端口被占用,这里额外的提一下:

解决端口被占用的问题:https://cloud.tencent.com/developer/article/1175604

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用node.js从零开始去写一个简单的爬虫
如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定,步骤其实很简单。node的安装就不一步步的解释了,如果不会可以自行百度。在node开大环境下开始第一步:
王小婷
2018/08/22
1.3K0
用node.js从零开始去写一个简单的爬虫
Node.js 小打小闹之爬虫入门
网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。此外爬虫还可以验证超链接和 HTML 代码,用于网络抓取。
阿宝哥
2019/11/05
1.1K0
必应API接口node.js版 - 极客玩家大白
近期,在研究百度、必应、API等的url提交API时,发现有用Go语言做工具的大佬的分享 利用 API 自动向搜索引擎提交网址(Go语言版) - pyList。
Enjoy233
2020/09/17
1.1K0
必应API接口node.js版 - 极客玩家大白
用node撸一个简单的爬虫
一提起爬虫可能大家就会觉得很高大上,就会想起python.呵呵,我们今天偏偏就要颠覆大家的认知,用node不到100行代码擼一个简单的爬虫。天天python,我决定换下口味。
润森
2019/08/30
7050
技术分享:用Node抓站(一)
如果只写怎么抓取网页,肯定会被吐槽太水,满足不了读者的逼格要求,所以本文会通过不断的审视代码,做到令自己满意(撸码也要不断迸发新想法!
疯狂的技术宅
2019/03/28
7340
技术分享:用Node抓站(一)
用TypeScript和library needle来创建视频爬虫程序
使用 TypeScript 和 needle 库创建视频爬虫程序的过程可以按照以下步骤进行。needle 是一个轻量级的 HTTP 请求库,适用于进行网络请求。
华科云商小徐
2025/03/12
1580
用node写个爬虫?看完这篇新手也会
从node问世以后,就不断被JavaScript的忠实追随者拿来干一些原来只有php、Python等后端语言才能干的事情,例如写个爬虫之类的。对于前端er来说,用上一些好用的轮子,你可能十几行代码就可以写一个crawler哦~ 爬虫的思路十分简单: 按照一定的规律发送 HTTP 请求获得页面 HTML 源码(必要时需要加上一定的 HTTP 头信息,比如 cookie 或 referer 之类) 利用正则匹配或第三方模块解析 HTML 代码,提取有效数据 将数据持久化到数据库中 当然爬虫的写法千千万,下面
用户1097444
2022/06/29
8210
用node写个爬虫?看完这篇新手也会
学习服务端JavaScript这个有名的Node.js
参照这个教程:https://github.com/alsotang/node-lessons/tree/master/lesson0
JQ实验室
2022/02/09
1.5K0
学习服务端JavaScript这个有名的Node.js
node.js实现CURL功能
PHP中的CURL功能很好实现,四五行代码封装一下就OK了。node.js中如何实现CURL的功能呢,下面详细介绍。 这里需要用到request这个库,所以先安装此包: npm install request 安装下来之后, 就是代码实现的问题了。示例代码如下(只实现了POST方法): var request = require('request'); request.post( { url:'http://localhost:9095/phpTes
Marser
2018/06/25
5.7K0
Node.js 在 VS Code 中发送 POST 请求
Node.js 的后端貌似更容易解析 Node 中 request 模块发送的 POST 请求,本文记录 node.js VS Code 环境配置和发送 POST 请求的方法。 背景 前端小白,需求是给一个url 发送post 请求,请求中加入: { "username": "your-username", "password": "your-password" } 对 Python 相对比较熟悉,于是先写了如下代码: import requests import json url = "htt
为为为什么
2022/08/10
3.4K0
Node.js 在 VS Code 中发送 POST 请求
利用Node.js实现拉勾网数据爬取
拉勾网作为中国领先的互联网招聘平台,汇集了丰富的职位信息,对于求职者和人力资源专业人士来说是一个宝贵的数据源。通过编写网络爬虫程序,我们可以自动化地收集这些信息,为求职决策和市场研究提供数据支持。Node.js以其非阻塞I/O和事件驱动的特性,成为实现这一目标的理想选择。
小白学大数据
2024/04/01
2250
基于Node.js实现一个小小的爬虫
从拉钩招聘网站中找出“前端开发”这一类岗位的信息,并作相应页面分析,提取出特定的几个部分如岗位名称、岗位薪资、岗位所属公司、岗位发布日期等。并将抓取到的这些信息,展现出来。
书童小二
2018/09/03
1.2K0
基于Node.js实现一个小小的爬虫
node之http模块之爬虫和event
我是歌谣 微信公众号关注前端小歌谣一起学习前端知识 今天继续给大家讲解node中爬虫的讲解
爱学习的前端歌谣
2023/12/10
2070
node之http模块之爬虫和event
用 Javascript 和 Node.js 爬取网页
本文主要针对具有一定 JavaScript 经验的程序员。如果你对 Web 抓取有深刻的了解,但对 JavaScript 并不熟悉,那么本文仍然能够对你有所帮助。
疯狂的技术宅
2020/06/28
10.5K1
如何实现一个简单的Node.js脚手架
对前端、Node操作有一定的了解,同时向了解脚手架开发过程或者需要自己实现一个脚手架的开发者。
黄Java
2018/09/18
1.5K0
如何实现一个简单的Node.js脚手架
node爬虫实践总结
随着web2.0时代的到来,数据的价值愈发体现出来。无论是在目前火热的人工智能方向,还是在产品侧的用户需求分析,都需要获取到大量的数据,而网络爬虫作为一种技术手段,在不违反主体网站基本要求的情况下是获取数据成本最低的手段。与此同时,爬虫技术也飞速发展。
IMWeb前端团队
2019/12/04
1.4K0
一个基于Node.js的小爬虫
用到的模块 mysql http fs cheerio 其中fs 系统自带,不必安装。其余需要运行以下代码安装: npm install -S mysql http cheerio 运行结果 代
无道
2019/11/12
6860
Node.js爬虫之使用cheerio爬取图片
在上一篇文章我们利用Node.js实现了一个基本的爬虫,但是要写很长的正则--实在太累了而且需要对正则绝对熟悉。 在写前端我们都知道jQuery能方便帮我我们进行各种DOM操作,通过DOM操作我们可以方便的获取元素的各种属性,不过jqDOM操作只能运行在客户端,如果服务端有这样的一个工具能帮我们进行DOM操作那不是就解决了之前不断写正则的问题? 当然有---cheerio
切图仔
2022/09/08
1.4K0
Node.js爬虫之使用cheerio爬取图片
入门 node.js 你必须知道的那些事
exports 是 module.exports 的一个引用,意思就是指向同一块内存地址,node 中真正生效的是 module.exports, 修改 exports 本质上也是修改 module.exports 的值,
IT派
2018/07/30
1.2K0
vue之node.js的简单介绍
它是可以运行JavaScript的服务器,用javascript语言编写的后端,只是它的开发语言是JavaScript
用户1214487
2022/03/26
7900
vue之node.js的简单介绍
相关推荐
用node.js从零开始去写一个简单的爬虫
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验