基本原理
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),
是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还
有蚂蚁、自动索引、模拟程序或者蠕虫。
我这里说的爬虫则是相对狭义,作为开发,自己做爬虫爬去资料无疑是很有成就感的。
爬虫的工作流程
- 准备种子URL;
- 将这些URL放入待抓取URL队列;
- 从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。
- 分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环;
要解决的问题
- 要获取我们只定的信息,所以可以指定我们需要的格式来定义目标也,通过DOM解析技术从缓存的页面提炼信息,保存指定信息;
- 效率是个大问题,多线程、分布式技术的应用很重要;
- 递归的获取url地址是个类似图数据结构,以何种方式抓取url成为抓取策略,其中有
深度优先遍历策略
、宽度优先遍历策略
、反向链接数策略
、PageRank策略
。
相关资料
java、python、Node.js、Go语言因为多线程、协程的支持,非常适合做爬虫语言;php应用多进程方式也可作为爬虫的应用。