node 简单的爬虫
基于express爬虫,
1,node做爬虫的优势
首先说一下node做爬虫的优势
第一个就是他的驱动语言是JavaScript。JavaScript在nodejs诞生之前是运行在浏览器上的脚本语言,其优势就是对网页上的dom元素进行操作,在网页操作上这是别的语言无法比拟的。
第二就是nodejs是单线程异步的。听起来很奇怪,单线程怎么能够异步呢?想一下学操作系统的时候,单核cpu为什么能够进行多任务处理?道理也是类似,在操作系统中进程对CPU的占有进行时间切片,每一个进程占有的时间很短,但是所有进程循环很多次,因此看起就像是多个任务在同时处理。js也是一样,js里有事件池,CPU会在事件池循环处理已经响应的事件,未处理完的事件不会放到事件池里,因此不会阻塞后续的操作。在爬虫上这样的优势就是在并发爬取页面上,一个页面未返回不会阻塞后面的页面继续加载,要做到这个不用像python那样需要多线程。
其次是node的劣势
首先是异步并发上。处理的好很方便,处理的不好就会很麻烦。例如要爬取10个页面,用node不做异步处理话,那返回的结果可不一定是按1、2、3、4……这个顺序,很可能是随机。解决的办法就是增加一个页面的序列戳,让爬取的数据生成csv文件,然后重新排序。
第二个是数据处理上的劣势,这点是不如python的,如果只是单纯的爬数据,用node当然很好,但是如果用爬来的数据继续做统计分析,做个回归分析聚类啥的话,那就不能用node一步到底了。
二,爬虫步骤
1,express安装node的环境
$ mkdir myapp
$ cd myapp
$ npm init===生成package.json 文件
$ npm install express --save=======保存在依赖表中
$ npm install express============临时安装
http://www.expressjs.com.cn/starter/installing.html
2依赖包的安装
npm install cheerio --save
了解官网
https://www.npmjs.com/package/request
https://www.npmjs.com/package/cheerio
3,使用说明:
*request的使用说明,请求的状态成功的状态----200
node 简单的爬虫的更多相关文章
- node - 简单的爬虫案例
cherrio模块 安装 cnpm install cherrio 使用方法 const cheerio = require('cheerio') const $ = cheerio.load('&l ...
- 每天几分钟跟小猫学前端之node系列:用node实现最简单的爬虫
先来段求分小视频: https://www.iesdouyin.com/share/video/6550631947750608142/?region=CN&mid=6550632036246 ...
- 用node.js从零开始去写一个简单的爬虫
如果你不会Python语言,正好又是一个node.js小白,看完这篇文章之后,一定会觉得受益匪浅,感受到自己又新get到了一门技能,如何用node.js从零开始去写一个简单的爬虫,十分钟时间就能搞定, ...
- 纯手工打造简单分布式爬虫(Python)
前言 这次分享的文章是我<Python爬虫开发与项目实战>基础篇 第七章的内容,关于如何手工打造简单分布式爬虫 (如果大家对这本书感兴趣的话,可以看一下 试读样章),下面是文章的具体内容. ...
- nodejs实现最简单的爬虫
本文将以抓取百度搜索结果中关键词的相关搜索为例子,教会大家以nodejs制作最简单的爬虫: 开始之前呢,先来个公众号求粉: 将使用的node模块及属性介绍: request: ...
- 视频博文结合的教程:用nodejs实现简单的爬虫
教学视频地址: https://v.qq.com/x/page/b0643tut4ze.html 前言 本喵最近工作中需要使用node,并也想晋升为全栈工程师,所以开始了node学习之旅,在学习过 ...
- NodeJs实现简单的爬虫
1.爬虫:爬虫,是一种按照一定的规则,自动地抓取网页信息的程序或者脚本:利用NodeJS实现一个简单的爬虫案例,爬取Boss直聘网站的web前端相关的招聘信息,以广州地区为例: 2.脚本所用到的nod ...
- Selenium + PhantomJS + python 简单实现爬虫的功能
Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...
- asp.net简单小爬虫
所谓爬虫简单点说,就是把别人网站上的东西爬下来,至于爬做什么用就看你自己了,比如:把别人网站上的东西爬下来放在自己网站中(感觉有点像小偷^v^). 这里随便写了一个爬虫代码(可以自己再去进行完善): ...
随机推荐
- 大数据mapreduce二分法ip定位之Python实现
ip定位数据大约12M,采用-chacheFile 分发 文件来源https://pan.baidu.com/s/1J0pwTafHgt4T0k3vV_gC-A 格式大致格式如下: 0.0.0.0 0 ...
- 初学python之路-day14
一.带参装饰器 # 通常,装饰器为被装饰的函数添加新功能,需要外界的参数 # -- outer参数固定一个,就是func # -- inner参数固定同被装饰的函数,也不能添加新参数 # -- 可以借 ...
- swift 学习- 24 -- 协议 01
// 协议 定义了一个蓝图, 规定了用来实现某一特定任务或者功能的方法, 属性, 以及其他需要的东西. // 类, 结构体, 或 枚举都可以遵循协议, 并且为协议定义的这些要求 提供具体的实现, 某个 ...
- socket-WebSocket HttpListener TcpListener 服务端客户端的具体使用案例
/// <summary>/// 启动服务监听的ip和端口的主线程/// </summary>/// <param name="tunnelPort" ...
- centos7 nginx图片 服务器可以访问ftp用户上传的图片资源的配置
注:本文参考了csdn:JAVA_DIRECTION的<nginx和ftp搭建图片服务器>一文.在实践中其文在centos7中还是存在缺陷性的 一:前提条件:是成功的安装好了ftp服务器和 ...
- linux命令中的参数前的一横(-)和两横(--)的区别
在解释这些区别之前我们先了解一下有关linux的背景知识,这个需要大家先认真看完就会对这些区别有更深入的了解,对linux也有更深的了解. 关于System V和BSD风格以及他们与Linux的关系: ...
- py4测试题
1.8<<2等于? 32 2.通过内置函数计算5除以2的余数 print(divmod(5,2))------>1 3.s=[1,"h",2,"e&qu ...
- swoole 简介
- 如何修改PDF文件内容,PDF怎么添加背景
很多的情况下,大家都会遇到PDF文件,不管是在学习中还是在工作中,对于PDF文件,文件的修改编辑是需要用到PDF编辑软件的,在编辑文件的时候,发现文件的页面是有背景颜色的,又该如何修改背景颜色呢,不会 ...
- HTML&javaSkcript&CSS&jQuery&ajax(四)
一.HTML创建响应设计 Responsive Web Design 可以改变尺寸传递网页,对于平板和移动设备是必须的 1.<!DOCTYPE html><html lang=&qu ...