-下载网页: urllib Request
-解析网页 BeautifulSoup
-模拟交互 处理JS动态网页: Selenium
- 分布式队列
- 布隆过滤器(BLoom Filter)
网络爬虫是一种自动提取网页的程序,它为搜索引擎
从万维网上下载网页,是搜索引擎的重要组成部分。
传统爬虫从一个活若干初始网页URL开始,得到初始网页上的URL,
在爬取网页过程当中,不断从当前页面上抽取新的url放入队列,
直到知足系统的必定中止条件
爬虫的分类
批量型爬虫
批量型爬虫有明确的抓取范围和慕白,当爬虫达到这个设定目标后
即中止抓取过程。
增量型爬虫
增量型爬虫会持续不断的抓取,对于抓取的网页,要按期更新。
通用的商业搜索引擎爬虫基本属于此类
垂直型爬虫
垂直型爬虫关注特定主体内容或者属于特定行业的网页,其余主体或者
其余行业的内容再也不考虑范围。
网络爬虫的基本工做流程:
1.首先选取一部分精心挑选的种子url;
2.将这些URL放入等待抓取的URL队列;
3.从待抓取队列中取出URL,解析DNS,而且获得主机的IP,并将URL
对应的网页下载下来。存储进已下载网页库。此外,将这些url放进已抓取的URL队列
4.分析已经抓取的URL队列中的URL,分析其中的其余URL。而且将URL放入待抓取URL队列。从而进入下一个循环。
对应的,能够将互联网的全部页面分为五个部分:
1.已下载未过时网页
2.已下载已过时网页:
抓取到网页其实是互联网内容的一个镜像与备份,互联网是动态变化的,一部分互联网上的内容以及发生了变化。
这是,这部分爬取的网页就已通过期了。
3.等待下载的网页: 待抓取URL序列的页面。
4.已知网页:尚未爬取下来,也没有在待爬取URL队列中,可是能够经过对已爬取页面或者待爬取URL对应页面进行分析得到URL,
认为是可可知网页。
5.不可知网页: 有一部分网页,爬虫是没法直接抓取下载的。
爬虫系统中,待抓取URL队列是很重要一部分。待抓取URL队列中的URL以怎样的排序队列也是一个很重要的问题
由于涉及到先抓取那个页面,后抓取哪一个页面而决定这些URL排列顺序的方法,叫作抓取策略。下面重点介绍几种常见的抓取策略。
1.深度优先遍历策略
2.宽度(广度)优先遍历策略
3.反向链路数策略
4.Partial PageRank 策略
互联网是动态变化的,具备很强的动态性。网页更新策略主要是决定什么时候更新以前已经下载过的页面。常见的更新策略有如下三种:网络
1.历史参考策略分布式
2.用户体验策略搜索引擎
3.聚类抽样策略url
泊松分布
尽管搜索引擎针对于某查询条件返回数量巨大的结果,可是用户每每只是关注前几页结果。
所以,抓取系统能够优先更新那些显示在查询结果前几页的网页。然后再更新那些后面网页。
这种更新策略也是须要用到历史信息的。
用户体验策略保留网页多个历史版本,而且能够根据过去每次内容变化对搜索质量的影响,获得一个平均值。
用这个值做为决定什么时候抓取的依据