基于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 必填项判断表单是否为空的方法
Sep 14 Javascript
javascript设计模式 封装和信息隐藏(上)
Jul 24 Javascript
jquery自定义函数的多种方法
Jan 09 Javascript
jquery中实现时间戳与日期相互转换
Apr 12 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
May 12 Javascript
原生js封装二级城市下拉列表的实现代码
Jun 16 Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 Javascript
jQuery.ajax实现根据不同的Content-Type做出不同的响应
Nov 03 Javascript
js自定义瀑布流布局插件
May 16 Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 Javascript
表格展示利器 Bootstrap Table实例代码
Sep 06 Javascript
原生javascript制作贪吃蛇小游戏的方法分析
Feb 26 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
实用函数9
2007/11/08 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
PHP setTime 设置当前时间的代码
2012/08/27 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
让PHP显示Facebook的粉丝数量方法
2014/01/08 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
js简单实现竖向tab选项卡的方法
2015/05/04 Javascript
JavaScript中Textarea滚动条不能拖动的解决方法
2015/12/15 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
微信小程序tab切换可滑动切换导航栏跟随滚动实现代码
2019/09/04 Javascript
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
python自定义异常实例详解
2017/07/11 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
HealthElement海外旗舰店:新西兰大卖场
2018/02/23 全球购物
运动会的口号
2014/06/09 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
争做文明公民倡议书
2019/06/24 职场文书
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android