Scrapy爬虫(十):爬虫总结以及扩展
爬虫总结
本专题介绍了scrapy的框架原理,并用了5个实例由浅入深的进行了演示。还讲到了scrapy的调试技巧,对于入门scrapy爬虫应该有一定的帮助。
对于爬虫开发者来说,无非就是分析url、由url下载数据、解析数据,存储数据并应用。
对url的分析主要是找规律,应为开发网站的开发者为了框架化或者说偷懒,一般同类型内容的url都有一定的规律,比如imdb.cn的网站,url的规律简直是太简单了,作为第一个爬虫去爬这种网站,是很容易入门的。
还有数据的存储,多个爬虫如何在一个pipeline中将item数据存储到多张表中,文章中也做了介绍,通常我们是将数据存储到数据库,我例子中使用的是mysql,也可以是其他的数据库,比如MongoDB什么的。
最后对于爬虫的调试我专门做了图例讲解,希望对感兴趣的朋友有些帮助,关于如何使用xpath、css、re我并没有过多的说明,因为这些都有现成的教程,可以自己对比选择使用,在合适的场景下使用合适的工具。
爬虫的一些扩展
- 其他爬虫框架
pyspider http://docs.pyspider.org/en/latest/
pyspider是国人开发的爬虫框架,有比较友好的可视化环境,感兴趣的朋友可以尝试下。
- 开发环境
python scrapy的开发环境搭建还是比较费精力的,特别是对于python2+、3+的环境选择,通常会有一些坑,另外还要搭建数据库环境比如mysql、redis等等。
感兴趣的朋友可以尝试使用docker配置环境,对于项目组的话可以配置好环境打成镜像,然后移植到另外的docker中,这样可以保证环境的一致性以及开发效率。
-
防止爬虫被ban
1 构造合理的 HTTP 请求头 登录
2 设置 cookie 的学问
3 正常的时间访问路径 延时访问
4 注意隐含输入字段值
5 爬虫通常如何避开蜜罐
6 使用可变的远程 IP 地址 代理的使用 -
具体可参考
-
分布式爬虫
scrapy-redis
scrapy和redis的结合,配合多台主机搭建分布式爬虫开发环境,如果爬虫进阶开发分布式爬虫是非常必要的。 -
增量更新爬虫
在分布式的基础上,实现监控网站动态实时增量更新爬取数据。 -
全网爬虫
搜索引擎
最后
有缘看到本文的朋友,若文中有谬误的话,还请您不吝赐教,谢谢。