资讯专栏INFORMATION COLUMN

简单的node爬虫存入excel数据分析

Mike617 / 1213人阅读

摘要:入门级的爬虫地址思否社区文章太多哪个是我想要的对比点赞数对比标题不用害怕,自己动手用来实现爬虫,麻麻再也不用担心我学习选择困难症啦核心代码写入成功核心的代码仅仅只有行哦配置代码定义爬虫的页面定义存放的路径定义元素范围定义数据属性具体元

入门级的node爬虫

github地址:https://github.com/lll618xxx/...

思否社区文章太多?哪个是我想要的?对比点赞数or对比标题
不用害怕,自己动手用node来实现爬虫,麻麻再也不用担心我学习选择困难症啦!

核心代码
const superagent = require("superagent")
const cheerio = require("cheerio")
const xlsx = require("node-xlsx")
const fs = require("fs")
const options = require("./options")

superagent.get(options.url)
    .then(res => {
        const bufferdata = [{
            name: "sheet1",
            data: [options.attr.map((item, index, arr) => {
                return arr[index][2]
            })]
        }]
       
        const $ = cheerio.load(res.text);
        
        $(options.ele).each((index, item) => {
            let arr = []
            options.attr.forEach((v, i, a) => {
                arr.push(a[i][1] ? $(item).find(a[i][0]).attr(a[i][1]) : $(item).find(a[i][0]).text())
            })
            bufferdata[0].data.push(arr)
        })
       
        fs.writeFile(options.excelPath, xlsx.build(bufferdata), (err) =>{
            if (err) throw err;
            console.log("写入Excel成功");
        })
    })
    .catch(err => {
        console.log(err)
    });

核心的代码仅仅只有36行哦!

配置代码
const path = require("path")

// 定义爬虫的页面
const url = "https://segmentfault.com/hottest/monthly"
// 定义excel存放的路径
const excelPath = path.join(__dirname, "result.xlsx")
// 定义元素范围
const ele =  "div.wrapper div.news-list div.news__item-info" 
// 定义数据属性 ["具体元素", "属性", "别名"]
const attr = [
    ["a", "href", "链接"],
    ["span.votes-num", "", "点赞数"],
    ["h4.news__item-title", "", "标题名字"],
    ["span.author a", "", "作者名字"],
] 
安装依赖
npm i
运行项目
cd node-reptile-simple && node index.js
配置项(options.js)
url 定义爬虫的页面
excelPath 定义excel存放的路径
ele 定义元素范围
attr 定义数据属性 ["具体元素", "属性", "别名"]
截图

可以去github查看更完整的内容
爬的不仅仅是思否,只有你想不到的,没有我做不到的!

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105933.html

相关文章

  • node爬取拉勾网数据并导出为excel文件

    摘要:前言之前断断续续学习了,今天就拿拉勾网练练手,顺便通过数据了解了解最近的招聘行情哈方面算是萌新一个吧,希望可以和大家共同学习和进步。 前言 之前断断续续学习了node.js,今天就拿拉勾网练练手,顺便通过数据了解了解最近的招聘行情哈!node方面算是萌新一个吧,希望可以和大家共同学习和进步。 一、概要 我们首先需要明确具体的需求: 可以通过node index 城市 职位来爬取相关信...

    dkzwm 评论0 收藏0
  • 爬虫小demo

    摘要:爬取的数据存入表格分析要爬取的内容的网页结构是库写入表所用读取表所用通过解析文档为用户提供需要抓取的数据改变标准输出的默认编码我们开始利用来获取网页并利用解析网页返回的是状态码,加上以字节形式二进制返回数据。 爬取的数据存入Excel表格 分析要爬取的内容的网页结构: showImg(https://segmentfault.com/img/bVbsFt6?w=1644&h=1012)...

    pf_miles 评论0 收藏0
  • nodejs使用node-xlsx生成excel

    摘要:使用中库进行的生成操作近日,应领导要求,从网上抓了一大批数据存入了数据库,可是妈妈批,市场妹子要的是表格啊,毕竟妹子的话还是要听的关键人家语气蛮好的,就从网上查一些资料。 ## 使用nodejs中node-xlsx库进行excel的生成操作 ## 近日,应领导要求,从网上抓了一大批数据存入了数据库,可是妈妈批 ,市场妹子要的是excel表格啊,毕竟妹子的话还是要听的(关键人家语气蛮好的...

    zr_hebo 评论0 收藏0
  • scrapy-redis分布式爬虫框架详解

    摘要:分布式爬虫框架详解随着互联网技术的发展与应用的普及,网络作为信息的载体,已经成为社会大众参与社会生活的一种重要信息渠道。下载器中间件位于引擎和下载器之间的框架,主要是处理引擎与下载器之间的请求及响应。 scrapy-redis分布式爬虫框架详解 随着互联网技术的发展与应用的普及,网络作为信息的载体,已经成为社会大众参与社会生活的一种重要信息渠道。由于互联网是开放的,每个人都可以在网络上...

    myeveryheart 评论0 收藏0

发表评论

0条评论

Mike617

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<