基于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+JS实现仿百度搜索结果中关键字变色效果
Aug 02 Javascript
JavaScript原型继承之基础机制分析
Aug 26 Javascript
JavaScript实现下拉列表框数据增加、删除、上下排序的方法
Aug 11 Javascript
jQuery插件ContextMenu自定义图标
Mar 15 Javascript
javascript 正则表达式分组、断言详解
Apr 20 Javascript
详解使用angular的HttpClient搭配rxjs
Sep 01 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
Sep 05 Javascript
VueJs 搭建Axios接口请求工具
Nov 20 Javascript
移动web开发之touch事件实例详解
Jan 17 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
May 06 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
Jun 12 Javascript
详解nginx配置vue h5 history去除#号
Nov 09 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给图片加水印
2016/10/12 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
Javascript实现的分页函数
2007/02/07 Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
详解JavaScript中的4种类型识别方法
2015/09/14 Javascript
Angular工具方法学习
2016/12/26 Javascript
JS实现的自动打字效果示例
2017/03/10 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
详解用node编写自己的cli工具
2017/05/23 Javascript
JS实现合并json对象的方法
2017/10/10 Javascript
uni-app微信小程序登录并使用vuex存储登录状态的思路详解
2019/11/04 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
zbar解码二维码和条形码示例
2014/02/07 Python
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
python多重继承实例
2014/10/11 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
Python如何实现定时器功能
2020/05/28 Python
python实现猜数游戏(保存游戏记录)
2020/06/22 Python
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
优秀应届本科生求职信
2014/07/19 职场文书
党的群众路线教育实践活动个人剖析材料
2014/10/07 职场文书
工资收入证明
2014/10/07 职场文书
离婚案件原告代理词
2015/05/23 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书
《天净沙·秋思》教学反思三篇
2019/11/02 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android