视频博文结合的教程:用nodejs实现简单的爬虫

先来段求分小视频:

https://www.iesdouyin.com/share/video/6550631947750608142/?region=CN&mid=6550632036246555405&titleType=title&timestamp=1525407578&utm_campaign=client_share&app=aweme&utm_medium=ios&iid=30176260384&utm_source=qq&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=aweme_ios&utm_campaign=client_share&uid=92735989673&did=30176260384

本文的教学视频地址:

https://v.qq.com/x/page/b0643tut4ze.html

前言

 

本喵最近工作中需要使用node,并也想晋升为全栈工程师,所以开始了node学习之旅,在学习过程中,

我会总结一些实用的例子,做成博文和视频教程,以实例形式来理解体会node的用法,所以跟小猫一起由浅及深的学node吧!

近期都会是些基础文章,主要用来了解node的各种功能,非常适合对node有所了解但没有开发node基础的前端工程师,

等基础掌握后,后续会进行进阶的探索和总结哟

本文将以抓取百度搜索结果中关键词的相关搜索为例子,教会大家以nodejs制作最简单的爬虫:

将使用的node模块及属性介绍:

request:

 

用于发送页面请求,抓取页面代码

GET请求

cheerio:

cheerio 是一个 jQuery Core 的子集,其实现了 jQuery Core 中浏览器无关的 DOM 操作 API:

本例子中将使用load方法,以下是一个简单的示例:

express:

 

基于Node.js 平台,快速、开放、极简的 web 开发框架,这里主要用来做简单的路由功能,就不做详细介绍了,主要是用了get,具体可以参考官网。

具体实现:

1.首先,我们要使用express搭建简单的node服务

使用命令行运行node demo.js,并在浏览器中访问 localhost:3000/key 运行结果为

2. 使用request实现页面抓取功能

使用命令行运行node demo.js,并在浏览器中访问 localhost:3000/key 运行结果为

3.使用cheerio将页面代码解析为jquery格式,并用jQuery语法找到抓取的内容位置,这样这个爬虫就实现了!

使用命令行运行node demo.js,并在浏览器中访问 localhost:3000/index 运行结果为

tips:

有些网站不是utf-8编码模式,这时可以使用iconv-lite来解除gb2312的乱码问题

当然各个网站都有反爬虫功能,可以通过 研究怎么模拟一个正常用户的请来规避部分问题(百度的中文搜索也会被屏蔽)

本文只是个入门,后序有机会将和大家详细讨论进阶版

谢谢大家的关注

原文地址:https://www.cnblogs.com/maorongmaomao/p/8990055.html

时间: 2024-10-12 10:29:57

视频博文结合的教程:用nodejs实现简单的爬虫的相关文章

nodejs实现简单的爬虫

闲着无聊就想鼓捣点东西玩玩,所以决定用node做个爬虫来爬点数据.查了些资料鼓捣了一段时间也算是弄出了个简单的爬虫. 目前这只小爬虫还是有不少缺陷,不过爬点简单的静态页面上的内容已经足够了. 详细的使用说明我就不介绍了,在github中有.地址:https://github.com/XLandMine/node-crawler 相关代码的说明我也都有注释,需要注意的是我对于爬取深度的理解是url的path有几个‘/’即为几层深度,默认为5. 主要的实现步奏就是利用http或者https模块发送r

2018-06-21 中文代码示例视频演示Python入门教程第五章 数据结构

知乎原链 续前作: 中文代码示例视频演示Python入门教程第四章 控制流 对应在线文档: 5. Data Structures 这一章起初还是采取了尽量与原例程相近的汉化方式, 但有些语义较偏(如Trondheim的hammer dance). 鉴于这一教程的目的在于使人尽量快速入门Python, 而任何不熟悉的词汇都会加上不必要的负担. 于是最终决定不拘泥于与原例程的"形似", 而采取在例程中使用更为国人熟知的词汇了. 中文代码示例Python入门教程 5.1 列表详述_哔哩哔哩

2018-06-20 中文代码示例视频演示Python入门教程第四章 控制流

知乎原链 续前作: 中文代码示例视频演示Python入门教程第三章 简介Python 对应在线文档: 4. More Control Flow Tools 录制中出了不少岔子. 另外, 输入法确实是一个短板. 中文代码示例Python入门教程 4.1 if条件语句 & 4.2 for语句_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili? 中文代码示例Python入门教程 4.3 range函数_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili? 中文代码示例Python入门教程 4.4 b

用NodeJs做一个小爬虫

作者:北京起步科技前端研究员,专注分享HTML5 App快速开发工具 WeX5 的黑魔法以及相应的前端技术. 前言 利用爬虫可以做很多事情,单身汉子们可以用爬虫来收集各种妹子情报,撩妹族们可以用爬虫收集妹子想要的小东西,赚大钱的人可以用来分析微博言论与股票涨跌的关系诸如此类的,简直要上天了. 你们感受一下 点我点我: 蠢蠢欲动 抛开机器学习这种貌似很高大上的数据处理技术,单纯的做一个爬虫获取数据还是非常简单的.对于前段er们来说,生在有nodejs的年代真是不要太幸福了,下面就用nodejs来做

一个Nodejs的简单计算测试程序

测试目的: 1 测试二维数组的使用 2 输出函数的使用 代码: var util = require('util'); a = 3; b = 4; c = a + b; a = []; for(i = 0; i < 10; i++) { info = ""; for(j = 0; j < 10; j++) { a[i,j] = i + j; util.print(util.format('%d', a[i, j])); util.print(' '); } console.

ActiveMQ学习教程(二)——简单示例

ActiveMQ学习教程(二)--简单示例 一.应用IDEA构建Maven项目 File->New->Module...->Maven->勾选->选择->Next -> GroupId:com.jd.myMaven   |    ArtifactId:activeMQ    |    version:默认   ->Finish 项目构建成功!项目结构如下所示: 二.创建生产者类,模拟生产者发消息 Step1:java/activemq/JMSProducer

docker &amp; nodejs &amp; mongodb Nodejs 应用简单的访问Mongodb 部署至Docker

docker & nodejs & mongodb Nodejs 应用简单的访问Mongodb 部署至Docker 原文地址 https://www.cnblogs.com/zhangyanbo/p/5851644.html (自己操作时遇到不能继续的情况,所以稍做了修改完善) 目录结构 . ├── app.js ├── controller ├── Dockerfile ├── model ├── node_modules ├── package.json ├── router └──

2019最新Python学习教程(Python学习路线_Python爬虫教程)爬虫工程师必备的10个爬虫工具

2019最新Python学习教程(Python学习路线_Python爬虫教程)爬虫工程师必备的10个爬虫工具 爬虫工程师必备的10个爬虫工具! 最近很多学爬虫的伙伴让推荐顺手的爬虫工具,总结了一下,把这些好用的爬虫工具都跟你们找齐活了! 磨刀不误砍柴工!都知道工欲善其事必先利其器,那么作为经常要和各大网站做拉锯战的爬虫工程师们,更需要利用利用好身边的一切法器,才能更快的攻破对方防线.这里以日常爬虫流程,给大家介绍十款爬虫工具,相信大家掌握以后,工作效率提高是完全没有问题了! 大家也可以看看有你们

混合式app ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)

1.ionic简介 为什么选用ionic: 彻底开源且免费 性能优异 基于红的发紫的AngularJs 漂亮的UI 强大的命令行(基于更热门的nodejs) 开发团队非常活跃 ngCordova,将主流的Cordova API或者Cordova插件封装为AngularJS扩展,使用非常方便 开源免费的webfont icon库ionicons,基本满足你icon需求 2.相关下载: Node.js(npm安装工具) :  https://nodejs.org/en/ jdk (android编译