前一段时间由于想从网络上搜集一些数据来练习一下数据分析的技术,所以心中萌生了对爬虫的研究念头。本人的工作就是和Python编程有很大的关系,于是就开始了爬虫的研究之路。入门书籍就是范传辉老师的《Python爬虫开发与项目实战》,不得不说这本书我个人认为还是写的非常好的。从头到尾由浅入深的说明了爬虫技术的发展过程,而且能结合实际的用例更细致化的说明和理解爬虫的运行过程,这本书还是很适合想要了解并上手写爬虫的小白们,当然最好还是有一定的Python编程基础。
写这篇文章主要的目的还是对自己学习爬虫的一个总结,学习的过程其实就是理论->实践->总结->再学习的过程,废话少说直奔主题。
无论是简单的爬虫还是大型的爬虫无外乎核心的部分就是五部分,URL管理器、页面下载器、页面解析器、爬虫调度器和存储器。
URL管理器:记录已爬取的链接和未爬取的链接以及链接的去重
页面下载器:负责下载爬虫请求的页面
页面解析器:解析并提取爬虫所需的数据
调度器:负责协调爬虫的运行
存储器:负责持久化爬取的数据
初学者还是应该亲自动手写一写简单的爬虫框架,这样会对爬虫有更好的理解。我个人认为在这五部分里面页面解析环节相对麻烦一点。因为页面的提取主要还是用到了正则表达式和xpath,对于页面的定位有时还是很头疼的。在爬虫的进阶环节我们就可以了解和运用scrapy框架了,scrapy为我们解决了大部分的麻烦,我们所做的就是重写页面解析的部分,就连翻页这样的问题都可以交给Rule和LinkExtractor来搞定。页面解析中的定位问题可以借助scrapy的selector搞定,selector提供了xpath等页面提取的方法。scrapy中你可以定义自己的Item把提取的元素持久化到数据库中,可以是关系数据库MySQL等,我用的是MongoDB&#x