基于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教程
Jun 09 Javascript
jquery获取tr并更改tr内容示例代码
Feb 13 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
Sep 06 Javascript
Javascript 判断两个IP是否在同一网段实例代码
Nov 28 Javascript
JS实现的简易拖放效果示例
Dec 29 Javascript
Webpack框架核心概念(知识点整理)
Dec 22 Javascript
JS运动特效之链式运动分析
Jan 24 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
Aug 19 Javascript
微信小程序非跳转式组件授权登录的方法示例
May 22 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
JS操作JSON常用方法(10w阅读)
Dec 06 Javascript
js数组的基本使用总结
Jan 18 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
推荐php模板技术[转]
2007/01/04 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
2008/06/05 PHP
php实现快速排序法函数代码
2012/08/27 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
php实现微信模板消息推送
2018/03/30 PHP
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
js中如何把字符串转化为对象、数组示例代码
2013/07/17 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
2014/08/07 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
JS获取中文拼音首字母并通过拼音首字母快速查找页面内对应中文内容的方法【附demo源码】
2016/08/19 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
JS从非数组对象转数组的方法小结
2018/03/26 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
详解webpack-dev-server使用方法
2018/09/14 Javascript
小程序实现留言板
2018/11/02 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
会计电算化专业应届大学生求职信
2013/10/22 职场文书
《太阳》教学反思
2014/02/21 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
怀念母亲教学反思
2014/04/28 职场文书
小学优秀班主任材料
2014/12/17 职场文书
哈姆雷特读书笔记
2015/06/29 职场文书
订货会主持词
2015/07/01 职场文书
学习十八大的感悟
2015/08/11 职场文书
Python selenium模拟网页点击爬虫交管12123违章数据
2021/05/26 Python
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
如何优化vue打包文件过大
2022/04/13 Vue.js