编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

nodeJs-爬虫初体验(nodejs爬取数据)

wxchong 2024-10-21 13:02:43 开源技术 10 ℃ 0 评论

准备工作

初始化npm

npm init

安装需要用到的库

koa/cheerio/nightmare/superagent/koa-router

搭建服务器

运用koa,我们可以很快速的搭建一个本地Http服务

编写完成后在终端启动运行即可 -执行 node index.js

爬取

  • Robots协议
/robots.txt
在地址后跟上这个路径,就可以查看相应地址的Robots协议,这其中带有Disallow的就是禁止爬取的页面
我们这边选择爬取豆瓣互联网图书排行
通过查询dom结构,我们可以看出我们需要获取的书名在
#subject_list ul li h2 a
  • 引入两个库
superagentJS
- superagentJS是轻量级的ajax API,
cheerioJS
- cheerioJS的load()方法,可以使用类似jQuery的$(element)的方式来获取页面元素,可以快速获取到我们需要的元素
  • 获取数据
通过使用superagentJS与cheerioJS,获取到书籍名称和地址的数据集合hotBookList数组
  • 访问3000端口

页面展示数据,说明爬虫已经成功获取书籍数据

数据存储到本地

  • 本地txt文档
运用node fs模块进行数据的修改
fs - 模块
readFile (fileRoute,fileData,callBack) - 文件读取
write (fileRoute,fileData,callBack) - 文件写入,覆盖操作
appendFile (fileRoute,fileData,callBack) - 文件写入,增量操作

插入代码

打卡dataSave.txt文件,格式如下

  • 修改方法

我们打开dataSave发现我们与我们预期值不一致,查过之后发现储存obj数据格式需要转换格式,否则就会出现刚才这种情况

修改插入语句如下
fs.appendFile('dataSave.txt', JSON.stringify(news);

归纳

我们可以通过这个小爬虫了解到一些爬虫的小知识,通过这个小demo我们可以了解到一些node写爬虫写法。在之前我印象中还只有python才能做爬虫,似乎爬虫是python的专利,前几天听说可以用node写爬虫,遂进行了尝试,使用起来感觉还行。

目前对获取的数据没有做过多归整,数据也只存储在本地txt。数据可以存储可以有多种的方法,excel或者数据库等。包括一些翻页的问题也没过多的深入探究,今天在单独写一篇来归纳这部分内容。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表