分分钟教你用node.js写个爬虫

DuBoisSteward 发布于6月前 阅读556次
0 条评论

分分钟教你用node.js写个爬虫

一、什么是爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人,在 FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
WIKIPEDIA 爬虫介绍

二、爬虫的分类

  • 通用网络爬虫(全网爬虫)
爬行对象从一些 种子URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。

通用爬虫工作流程

  • 聚焦网络爬虫(主题网络爬虫)
指选择性 地爬行那些与预先定义好的主题相关页面的网络爬虫。
  • 增量式网络爬虫
指对已下载网页采取增量式更新和 只爬行新产生的或者已经发生变化网页 的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。
  • Deep Web 爬虫
爬行对象是一些在用户填入关键字搜索或登录后才能访问到的 深层网页信息的爬虫。

爬虫的爬行策略

  • 通用网络爬虫(全网爬虫)
深度优先策略、广度优先策略

页面关系模拟树状结构

  • 聚焦网络爬虫(主题网络爬虫)
基于内容评价的爬行策略(内容相关性),基于链接结构评价的爬行策略、基于增强学习的爬行策略(链接重要性),基于语境图的爬行策略(距离,图论中两节点间边的权重)
  • 增量式网络爬虫
统一更新法、个体更新法、基于分类的更新法、自适应调频更新法
  • Deep Web 爬虫
Deep Web 爬虫爬行过程中最重要部分就是表单填写,包含两种类型:基于领域知识的表单填写、基于网页结构分析的表单填写

现代的网页爬虫的行为通常是四种策略组合的结果:

选择策略:决定所要下载的页面;
重新访问策略:决定什么时候检查页面的更新变化;
平衡礼貌策略:指出怎样避免站点超载;
并行策略:指出怎么协同达到分布式抓取的效果;

现代分布式爬虫系统

写一个简单网页爬虫的流程

  1. 确定爬取对象(网站/页面)
  2. 分析页面内容(目标数据/DOM结构)
  3. 确定开发语言、框架、工具等
  4. 编码 测试,爬取数据
  5. 优化

一个简单的百度新闻爬虫

确定爬取对象(网站/页面)

百度新闻http://news.baidu.com/

分析页面内容(目标数据/DOM结构)

······

确定开发语言、框架、工具等

node.js (express) + SublimeText 3

编码,测试,爬取数据

coding ···

Let's start

新建项目目录

  1. 创建项目目录baiduNews

初始化package.json

npm init

未完待续......

查看原文: 分分钟教你用node.js写个爬虫

  • smallpanda
  • purplepeacock
  • lazylion
需要 登录 后回复方可回复, 如果你还没有账号你可以 注册 一个帐号。