教学视频地址:

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的乱码问题
当然各个网站都有反爬虫功能,可以通过 研究怎么模拟一个正常用户的请来规避部分问题(百度的中文搜索也会被屏蔽)
本文只是个入门,后序有机会将和大家详细讨论进阶版
 
谢谢大家的关注
 
 

最新文章

  1. cloudera learning7:Hadoop资源管理
  2. C扩展python的module和Type
  3. Sharepoint学习笔记—习题系列--70-576习题解析 -(Q1-Q3)
  4. windows中的上帝模式开启方法
  5. android 源码目录介绍
  6. svn常见错误总结
  7. 济南学习 Day 3 T2 am
  8. 普通的101键盘在Mac上的键位对应
  9. 蚁群算法matlab实现
  10. Ubuntu嵌入式开发环境配置问题集锦(不断更新)
  11. Dubbo分布式服务子系统的划分
  12. python方法的延迟加载
  13. 《java入门》第一季之类(String类字符串一旦被赋值就没法改变)
  14. 常用Hadoop命令(bin)
  15. vivo如何录制手机视频 分享简单的操作方法
  16. 开发更健壮python程序的一些工具
  17. 异常分类VS垃圾分类
  18. TensorFlow实战——个性化推荐
  19. HDUOJ---老人是真饿了
  20. 嵌入式开发之uart---rs232 和rs485 通用自定义通信协议

热门文章

  1. Cocos2D两个方法的重构一例
  2. (一一〇)正则表达式的基本使用与RegexKitLite的使用
  3. android notification,notificationmanager详解
  4. Oracle分页存储过程及PLSQL中的调用脚本
  5. App会取代网站吗?
  6. Bias and Variance 偏置和方差
  7. 网站开发进阶(三十七)JSP页面跳转问题解决
  8. java 的序列化和反序列化的问题
  9. 【Android 应用开发】 ActionBar 基础
  10. lua c函数注册器