前段时间看到别人用node提取网页表格内容,今天自己尝试一下

依赖:node.js nginx

直接上代码吧!!!

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Style-Type" content="text/css"><title></title><meta name="Generator" content="Cocoa HTML Writer"><meta name="CocoaVersion" content="2022.3"><style type="text/css"></style>
</head>
<body><h3>2021全国各地男女占比</h3><table border="1" cellspacing="0" cellpadding="0"><thead><tr><th>地区</th><th>男</th><th>女</th><th>性别比</th></tr></thead><tbody><tr><td>全国</td><td>51.24</td><td>48.76</td><td>1105.07</td></tr><tr><td>北京</td><td>51.14</td><td>48.86</td><td>104.65</td></tr><tr><td>天津</td><td>51.53</td><td>48.47</td><td>106.31</td></tr><tr><td>河北</td><td>50.50</td><td>49.50</td><td>102.02</td></tr><tr><td>江苏</td><td>50.78</td><td>49.22</td><td>103.15</td></tr></tbody></table>
</body>
</html>

const request = require('request');
const cheerio = require('cheerio');
const xlsx = require('node-xlsx');
const fs = require('fs');
const path = require('path');
const time = Date.now();request('http://localhost:8080',(error,response,body)=>{if(!error && response && response.statusCode === 200) {const $ = cheerio.load(body);const th = $('thead th');const data = [];const arr = new Array(th.length).fill(0);const name = $('h3').text();const subtitle = arr.map((item,key)=> th.eq(key).text());$('tbody tr').each((key,item) => {const td = $(item).find('td');data.push(arr.map((item,key) => td.eq(key).text()));})data.unshift(subtitle);const buffer = xlsx.build([{name,data}]);fs.writeFileSync(path.join(__dirname,'gdp.xlsx'),buffer);console.log(`执行完成,用时${Math.ceil((Date.now() - time) / 1000)}秒`);}
})




第一次在mac电脑上安装nginx,看网上大家都推荐homebrew管理工具,安装的时候遇到了一些问题,查询一番总算解决了
命令步骤如下:
安装一:brew官网的安装脚本

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

安装二:brew 镜像安装脚本

/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"

安装nginx

brew install nginx

验证结果

brew services start nginx

启动成功后可在localhost:8080访问

安装问题参考文章如下:
mac安装homebrew问题
brew安装nginx报错‘Could not resolve HEAD to a revision’

node爬虫(入门)相关推荐

  1. node 没有界面的浏览器_node.js爬虫入门(二)爬取动态页面(puppeteer)

    之前第一篇爬虫教程node.js爬虫入门(一)爬取静态页面讲解了静态网页的爬取,十分简单,但是遇到一些动态网页(ajax)的话,直接用之前的方法发送请求就无法获得我们想要的数据.这时就需要通过爬取动态 ...

  2. node爬虫快速入门

    node爬虫 初入前端,刚刚接触node,对于耳闻已久的node爬虫非常神往,所以有了这篇文章,项目代码在文章末尾 需求 抓取天涯论坛重庆地区板块的文章列表信息. 使用工具 node.js super ...

  3. node工程默认url_node 爬虫入门实例,简单易懂

    前言 本文介绍一个 koa 的爬虫项目,受众对象为初学前端不久的小伙伴,通过这个项目能对 node 爬虫有一个简单的认识,也能自己动手写一些简单的爬虫.项目地址: Fe-Icy/firm-spider ...

  4. python爬虫挖掘平台搭建_一篇非常棒的安装Python及爬虫入门博文!

    原标题:一篇非常棒的安装Python及爬虫入门博文! 一. 大数据及数据挖掘基础(私信小编007即可获取大量Python学习资料!) 第一部分主要简单介绍三个问题: 1.什么是大数据? 2.什么是数据 ...

  5. Scrapy爬虫入门教程五 Selectors(选择器)

    Scrapy爬虫入门教程一 安装和基本使用 Scrapy爬虫入门教程二 官方提供Demo Scrapy爬虫入门教程三 命令行工具介绍和示例 Scrapy爬虫入门教程四 Spider(爬虫) Scrap ...

  6. node爬虫进阶之——登录

    转载自:http://www.jianshu.com/p/87867f325184 在之前的文章node入门场景之--爬虫已经介绍过最简单的node爬虫实现,本文在原先的基础上更进一步,探讨一下如何绕 ...

  7. Python 爬虫入门教程——社团授课型

    Python爬虫入门教程 基础知识 什么是HTML.CSS.JavaScript 网页往往采用html+css+js开发,html是一门标记语言 如下: <!- 将下面这句话放入html文件中, ...

  8. python与爬虫入门演示

    Python 简介Python 历史Python 之禅Ipython 解释器ipython magic命令ipython 使用Ipython notebook使用 Anacondaconda 的使用虚 ...

  9. node爬虫puppeteer使用

    文章目录 node 爬虫 puppeteer 使用 记录一个实战 demo 开发先看文档 启动浏览器 官网的入门 demo puppeteer.launch page.goto 获取页面上的元素 剩下 ...

  10. python爬虫入门教程--优雅的HTTP库requests(二)

    requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive.连接池.Cookie持久化.内容自动解压.HTTP代理.SSL认证等很多特性,下面这篇文章主要给大家介绍 ...

最新文章

  1. Java 设计模式 之 中介者模式(Mediator)
  2. 全局稳定性收敛平衡点为0吗_「模型解读」GoogLeNet中的inception结构,你看懂了吗...
  3. spark结构化流保存mysql_Spark结构化流异常:不支持没有水印的附加输出模式
  4. Javascript综合应用小案例(续)
  5. Oracle内部错误:ORA-00600:[4097]一例
  6. java工程师需要的技能_Java工程师需要掌握哪些技能?
  7. Java操作SQL Server数据库
  8. 在Python中将字符串拆分为字符数组
  9. 蚂蚁上市P8身价超亿,丢给我这几个牛逼的公众号
  10. algol语言_ALGOL的完整形式是什么?
  11. puts遇到空格无法输出_ACM输出超限|puts与printf
  12. httpcline转发_go http请求转发
  13. 【实验4】——互谱法测向
  14. java项目嗖嗖移动业务大厅项目报告_Java就业指导课程
  15. ASP.NET AjaxPro的应用 .AjaxPro使用中“XXX未定义”的一种解决方法(转载的)
  16. QGIS使用栅格图层
  17. 练习绕口令快速提高语言表达能力(收藏)
  18. android Logcat打印格式说明
  19. 浏览器兼容性问题(IE9+;PC)
  20. OK6410上裸机点亮LED程序

热门文章

  1. 将一个4×4的矩阵转置,用一函数实现之。要求:(1)在主函数中用scanf函数输入矩阵元素。(2)将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。
  2. jsdelivr使用
  3. Java面向对象系列[v1.0.0][SQL语法之数据库约束]
  4. AI观察|机器人成为了我们的好伙伴,你愿意吗?
  5. vue 解决测试页面在手机滑不动问题
  6. 方差、标准差、协方差、协方差矩阵、散度矩阵
  7. Qt加载MySql5.6驱动问题
  8. 2021大厂字节跳动笔试题(含答案)
  9. java poi获取word文档自动生成的序号
  10. java voliate,voliate 的实现原理是什么【面试题详解】