node爬虫(入门)
前段时间看到别人用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爬虫(入门)相关推荐
- node 没有界面的浏览器_node.js爬虫入门(二)爬取动态页面(puppeteer)
之前第一篇爬虫教程node.js爬虫入门(一)爬取静态页面讲解了静态网页的爬取,十分简单,但是遇到一些动态网页(ajax)的话,直接用之前的方法发送请求就无法获得我们想要的数据.这时就需要通过爬取动态 ...
- node爬虫快速入门
node爬虫 初入前端,刚刚接触node,对于耳闻已久的node爬虫非常神往,所以有了这篇文章,项目代码在文章末尾 需求 抓取天涯论坛重庆地区板块的文章列表信息. 使用工具 node.js super ...
- node工程默认url_node 爬虫入门实例,简单易懂
前言 本文介绍一个 koa 的爬虫项目,受众对象为初学前端不久的小伙伴,通过这个项目能对 node 爬虫有一个简单的认识,也能自己动手写一些简单的爬虫.项目地址: Fe-Icy/firm-spider ...
- python爬虫挖掘平台搭建_一篇非常棒的安装Python及爬虫入门博文!
原标题:一篇非常棒的安装Python及爬虫入门博文! 一. 大数据及数据挖掘基础(私信小编007即可获取大量Python学习资料!) 第一部分主要简单介绍三个问题: 1.什么是大数据? 2.什么是数据 ...
- Scrapy爬虫入门教程五 Selectors(选择器)
Scrapy爬虫入门教程一 安装和基本使用 Scrapy爬虫入门教程二 官方提供Demo Scrapy爬虫入门教程三 命令行工具介绍和示例 Scrapy爬虫入门教程四 Spider(爬虫) Scrap ...
- node爬虫进阶之——登录
转载自:http://www.jianshu.com/p/87867f325184 在之前的文章node入门场景之--爬虫已经介绍过最简单的node爬虫实现,本文在原先的基础上更进一步,探讨一下如何绕 ...
- Python 爬虫入门教程——社团授课型
Python爬虫入门教程 基础知识 什么是HTML.CSS.JavaScript 网页往往采用html+css+js开发,html是一门标记语言 如下: <!- 将下面这句话放入html文件中, ...
- python与爬虫入门演示
Python 简介Python 历史Python 之禅Ipython 解释器ipython magic命令ipython 使用Ipython notebook使用 Anacondaconda 的使用虚 ...
- node爬虫puppeteer使用
文章目录 node 爬虫 puppeteer 使用 记录一个实战 demo 开发先看文档 启动浏览器 官网的入门 demo puppeteer.launch page.goto 获取页面上的元素 剩下 ...
- python爬虫入门教程--优雅的HTTP库requests(二)
requests 实现了 HTTP 协议中绝大部分功能,它提供的功能包括 Keep-Alive.连接池.Cookie持久化.内容自动解压.HTTP代理.SSL认证等很多特性,下面这篇文章主要给大家介绍 ...
最新文章
- Java 设计模式 之 中介者模式(Mediator)
- 全局稳定性收敛平衡点为0吗_「模型解读」GoogLeNet中的inception结构,你看懂了吗...
- spark结构化流保存mysql_Spark结构化流异常:不支持没有水印的附加输出模式
- Javascript综合应用小案例(续)
- Oracle内部错误:ORA-00600:[4097]一例
- java工程师需要的技能_Java工程师需要掌握哪些技能?
- Java操作SQL Server数据库
- 在Python中将字符串拆分为字符数组
- 蚂蚁上市P8身价超亿,丢给我这几个牛逼的公众号
- algol语言_ALGOL的完整形式是什么?
- puts遇到空格无法输出_ACM输出超限|puts与printf
- httpcline转发_go http请求转发
- 【实验4】——互谱法测向
- java项目嗖嗖移动业务大厅项目报告_Java就业指导课程
- ASP.NET AjaxPro的应用 .AjaxPro使用中“XXX未定义”的一种解决方法(转载的)
- QGIS使用栅格图层
- 练习绕口令快速提高语言表达能力(收藏)
- android Logcat打印格式说明
- 浏览器兼容性问题(IE9+;PC)
- OK6410上裸机点亮LED程序
热门文章
- 将一个4×4的矩阵转置,用一函数实现之。要求:(1)在主函数中用scanf函数输入矩阵元素。(2)将数组名作为函数实参,在执行函数的过程中实现矩阵转置,函数调用结束后在主函数中输出已转置的矩阵。
- jsdelivr使用
- Java面向对象系列[v1.0.0][SQL语法之数据库约束]
- AI观察|机器人成为了我们的好伙伴,你愿意吗?
- vue 解决测试页面在手机滑不动问题
- 方差、标准差、协方差、协方差矩阵、散度矩阵
- Qt加载MySql5.6驱动问题
- 2021大厂字节跳动笔试题(含答案)
- java poi获取word文档自动生成的序号
- java voliate,voliate 的实现原理是什么【面试题详解】