基于node.js实现爬虫的讲解


Posted in Javascript onFebruary 18, 2019

1. cheerio 与 request

  • request:模拟客户端行为,对页面进行请求
  • cheerio:对服务器端返回的页面进行解析;
var cheerio = require('cheerio');
var request = require('request');
var startUrl = 'http://www.baidu.com'
request(startUrl, function(err, response) {
  if (err) {
    console.log(err);
  }
  var $ = cheerio.load(response.body);
  var title = $('title').text();
  console.log(title);
}

2. 认识 cheerio

获取 element 位置

通过 class 属性进行匹配:

var $=cheerio.load('<div class="container"></div>'); 
$('.container')

取其链接:<a class="downbtn" href="http://mov.bn.netease.com/mobilev/2013/1/F/G/S8KTEF7FG.mp4" id="M8KTEKR84" target="_blank"></a>

$('a.downbtn').attr('href')

某一页面下的全部可链接:

var url = 
var $ = cheerio.load(data);
  $("a.downbtn").each(function(i, e) {
    console.log($(e).attr("href"));
  });
  console.log("done");
 } else {
   console.log("error");
 }

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
Nov 08 Javascript
javascript框架设计读书笔记之模块加载系统
Dec 02 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
Dec 18 Javascript
在JavaScript中模拟类(class)及类的继承关系
May 20 Javascript
解析js如何获取css样式
Dec 11 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
Aug 09 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
Vue2.0 v-for filter列表过滤功能的实现
Sep 07 Javascript
vue将data恢复到初始状态 &amp;&amp; 重新渲染组件实例
Sep 04 Javascript
基于Vue+Webpack拆分路由文件实现管理
Nov 16 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 #Javascript
vue实现的网易云音乐在线播放和下载功能案例
Feb 18 #Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
Feb 18 #Javascript
vue-cli3环境变量与分环境打包的方法示例
Feb 18 #Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
Feb 18 #Javascript
JS基于开关思想实现的数组去重功能【案例】
Feb 18 #Javascript
JS实现点击li标签弹出对应的索引功能【案例】
Feb 18 #Javascript
You might like
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
简单的js分页脚本
2009/05/21 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
解析JSON对象与字符串之间的相互转换
2013/12/18 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JavaScript中数组添加值和访问值常见问题
2016/02/06 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
模板视图和AngularJS之间冲突的解决方法
2016/11/22 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
2017/08/01 jQuery
vue的基本用法与常见指令
2017/08/15 Javascript
js封装成插件_Canvas统计图插件编写实例
2017/09/12 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
Django框架用户注销功能实现方法分析
2019/05/28 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
Html5基于canvas实现电子签名并生成PDF文档
2020/12/07 HTML / CSS
世界上最受欢迎的花店:1-800-Flowers.com
2020/06/01 全球购物
Unix控制后台进程都有哪些进程
2016/09/22 面试题
《理想》教学反思
2014/02/17 职场文书
销售个人求职信范文
2014/04/28 职场文书
保护环境建议书100字
2014/05/13 职场文书
企业党建工作汇报材料
2014/08/19 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
Apache Hudi 加速传统的批处理模式
2022/04/24 Servers
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python