文档介绍:Python 爬虫设计入门重庆大学软件服务工程实验室余俊良 Using Python To Design A Crawler Summarize ?基本的爬虫工作原理?简单爬虫设计–入门库: ?下载网页: urllib , Requests ?解析网页: BeautifulSoup ?模拟交互,处理 JS动态网页: Selenium ?高级爬虫框架 Scrapy ?分布式爬虫设计–分布式队列–布隆过滤器(Bloom Filter) ?网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的 URL 开始, 获得初始网页上的 URL ,在抓取网页的过程中,不断从当前页面上抽取新的 URL 放入队列,直到满足系统的一定停止条件。什么是爬虫?批量型爬虫–批量型爬虫有明确的抓取范围和目标,当爬虫达到这个设定的目标后,即停止抓取过程。?增量型爬虫–增量型爬虫会持续不断的抓取,对于抓取的网页,要定期更新。通用的商业搜索引擎爬虫基本都属于此类。?垂直型爬虫–垂直型爬虫关注特定主题内容或者属于特定行业的网页,其他主题或者其他行业的内容不再考虑范围。爬虫的分类通用爬虫框架基本工作流程?网络爬虫的基本工作流程如下: URL ; URL 放入待抓取 URL 队列; URL 队列中取出待抓取在 URL ,解析 DNS , 并且得到主机的 ip,并将 URL 对应的网页下载下来, 存储进已下载网页库中。此外,将这些 URL 放进已抓取 URL 队列。 URL 队列中的 URL ,分析其中的其他 URL , 并且将 URL 放入待抓取 URL 队列,从而进入下一个循环。从爬虫的角度对互联网进行划分从爬虫的角度对互联网进行划分?对应的,可以将互联网的所有页面分为五个部分: :抓取到的网页实际上是互联网内容的一个镜像与备份,互联网是动态变化的,一部分互联网上的内容已经发生了变化,这时,这部分抓取到的网页就已经过期了。 :也就是待抓取 URL 队列中的那些页面 :还没有抓取下来,也没有在待抓取 URL 队列中, 但是可以通过对已抓取页面或者待抓取 URL 对应页面进行分析获取到的 URL ,认为是可知网页。 ,爬虫是无法直接抓取下载的。称为不可知网页。抓取策略?在爬虫系统中,待抓取 URL 队列是很重要的一部分。待抓取 URL 队列中的 URL 以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些 URL 排列顺序的方法,叫做抓取策略。下面重点介绍几种常见的抓取策略: ––– – PageRank 策略抓取策略? depth-first : 遍历的路径: A-F-G E-H-I B C D ? breadth-first : 遍历的路径: A-B-C-D-E-F G H I