基于Node.js的爬虫工具 – Node Crawler
Node Crawler的目标是成为最好的node.js爬虫工具,目前已经停止维护。
我们来抓取光合新知博客tech栏目中的文章信息。
访问http://dev.guanghe.tv/category/tech/
,右键查看页面源代码,可以看到文章信息等内容,如下所示:
1
2
3
4
5
6
7
8
9
10
11
|
<ul class="posts">
<li>
<span class="post-date">Dec 31, 2015</span>
<a class="post-link" href="/2015/12/Getting-Started-With-React-And-JSX.html">React和JSX入门指导</a>
</li>
<li>
<span class="post-date">Dec 30, 2015</span>
<a class="post-link" href="/2015/12/ReactJS-For-Stupid-People.html">React 懒人教程</a>
</li>
</ul>
|
因为每篇文章都是一个<li>
标签,所以我们从页面代码的所有<li>
中获取文章的发布时间、链接和标题。
爬虫代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
var Crawler = require('crawler');
var crawler = new Crawler({
maxConnections: 10,
callback: function(err, result, $) {
$('li').each(function(index, li) {
console.log(index + ' :');
console.log('time:' + $(li).children(0).text());
console.log('url:' + result.uri + $(li).children(1).attr('href'));
console.log('title:' + $(li).children(1).text());
});
}
});
crawler.queue('http://dev.guanghe.tv/category/tech/');
|
npm install
安装crawler模块,node app.js
运行程序。
你将会获得如下内容(仅展示部分内容):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
0 :
time:Dec 31, 2015
url:http://dev.guanghe.tv/category/tech//2015/12/Getting-Started-With-React-And-JSX.html
title:React和JSX入门指导
1 :
time:Dec 30, 2015
url:http://dev.guanghe.tv/category/tech//2015/12/ReactJS-For-Stupid-People.html
title:React 懒人教程
2 :
time:Dec 24, 2015
url:http://dev.guanghe.tv/category/tech//2015/12/iOSCustomProblem.html
title:iOS开发常见问题
3 :
time:Dec 17, 2015
url:http://dev.guanghe.tv/category/tech//2015/12/iOSXcodeDebug.html
title:Xcode Debug技巧
|
基于Node.js的爬虫工具 – Node Crawler的更多相关文章
- 一个最简单 node.js 命令行工具
一个最简单 node.js 命令行工具 node.js cli $ node cli.js xyz # OR $ node cli xyz 接受参数 process.argv js "use ...
- 基于node.js制作爬虫教程
前言:最近想学习node.js,突然在网上看到基于node的爬虫制作教程,所以简单学习了一下,把这篇文章分享给同样初学node.js的朋友. 目标:爬取 http://tweixin.yueyishu ...
- Node.js 网页爬虫再进阶,cheerio助力
任务还是读取博文标题. 读取app2.js // 内置http模块,提供了http服务器和客户端功能 var http=require("http"); // cheerio模块, ...
- Node.js:常用工具util
概要:本篇博客的主要内容是介绍node.js的常用工具util. 1.util.inherits util.inherits(constructor,superConstructor)是一个实现对象间 ...
- Node.js 命令行工具的编写
日常开发中,编写 Node.js 命令行工具来完成一些小任务是很常见的操作.其编写也不难,和日常编写 Node.js 代码并无二致. package.json 中的 bin 字段 一个 npm 模块, ...
- 实用的 Node.js 教程,工具和资源
这里分享一批实用的实用的 Node.js 教程,工具和资源. Node.js是一个建立在Chrome之上的JavaScript运行时平台,可方便地构建快速,可扩展的网络应用程序.Node.js使用事件 ...
- 【Node.js】2.开发Node.js选择哪个IDE 开发工具呢
安装完Node.js之后,就要为它选择一个有利的IDE用于开发. 相比较了多个IDE之后,定位在webstrom和sublime上. 有一个简单的比较: webstorm功能很丰富,前端开发工具的集大 ...
- node.js入门系列(一)--Node.js简介
什么是NodeJS JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器. 每一种解析器都是一 ...
- Node.js的安装以及Node.js的模块管理
索引: Node.js的安装以及Node.js的模块管理Node.js开发环境搭建以及对ES6的支持Node.js构建Vue.js项目Vue.js单文件组件的开发基于Vue.js的UI组件(Eleme ...
随机推荐
- hdu4122(单调队列)
处理题目中给的日期,然后用单调队列维护 Alice's mooncake shop Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32 ...
- CSS3制作旋转导航
慕课网学习CSS3时,遇到个习题,觉得有必要总结学习下:CSS3制作旋转导航 慕课网习题地址:http://www.imooc.com/code/1883 示例及源码地址:http://codepen ...
- LeetCode_Isomorphic Strings
Isomorphic Strings Given two strings s and t, determine if they are isomorphic. Two strings are isom ...
- ubuntu 编辑pdf
参考:https://www.2cto.com/kf/201710/689121.html Ubuntu下几个功能比较全面的PDF编辑工具. 1.flpsed flpsed是一个WYSIWYG的“伪” ...
- 怎样将Arranged_2压入General_Polygon_set_2中
Thursday, March 14, 2013 How to Jam an Arrangement_2 into a General_polygon_set_2 I spent about thre ...
- MyEclipse安装主题(Color Theme)
前段时间发现同学开发使用IDE界面相当炫酷(Mac版的IntelliJ IDEA),个人也比较喜欢那种风格的界面,想想自己MyEclipse IDE界面简直是屌丝啊~~~~ 今天上CSDN看见一篇介绍 ...
- 最简单的win7、win8免费升级正版win10图文教程
https://www.microsoft.com/zh-cn/software-download/windows10 http://jingyan.baidu.com/article/19192ad ...
- phpcms 添加稿件到栏目 add_content
private $db; private $content_model; public function __construct() { parent::__construct (); $this-& ...
- js如何打印对象
js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一 ...
- centos7部署PaaS平台环境(mesos+marathon)
假如有5台主机可以使用,ip地址如下 规划(2master+3slave) master: 192.168.248.205 ---master1 192.168.248.206 ---master2 ...