基于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 相关文章推荐
Jquery中扩展方法extend使用技巧
Aug 24 Javascript
JavaScript返回0-1之间随机数的方法
Apr 06 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
Apr 28 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
深入理解JavaScript的React框架的原理
Jul 02 Javascript
理解javascript中的原型和原型链
Jul 30 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
Apr 20 Javascript
基于jquery插件编写countdown计时器
Jun 12 Javascript
jquery popupDialog 使用 加载jsp页面的方法
Oct 25 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
Vue watch响应数据实现方法解析
Jul 10 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
星际争霸任务指南——人族
2020/03/04 星际争霸
拼音码表的生成
2006/10/09 PHP
PHP函数学习之PHP函数点评
2012/07/05 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
ThinkPHP之用户注册登录留言完整实例
2014/07/22 PHP
简单实用的PHP防注入类实例
2014/12/05 PHP
php实现的RSS生成类实例
2015/04/23 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
用js来解决ajax读取页面乱码
2010/11/28 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
jQuery EasyUI Dialog拖不下来如何解决
2015/09/28 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
JS document内容及样式操作完整示例
2020/01/14 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
Python的Flask开发框架简单上手笔记
2015/11/16 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python3 enum模块的应用实例详解
2019/08/12 Python
python实现密码强度校验
2020/03/18 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
美国名表在线商城:Ashford(支持中文)
2019/09/24 全球购物
工作过失检讨书
2014/02/23 职场文书
家长通知书家长评语
2014/04/17 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
运动会报道稿大全
2015/07/23 职场文书