Scrapy
Scrapy简介
Scrapy是使用Python编写的一个通用的爬虫框架。
基于Twisted的异步编程框架,大幅提高了爬取效率。
Scrapy想来目前应该是我阅读源代码最多的开源项目了。在这个项目上,我学习到了yeild关键词,各种类的应用,接触到了一直想学习的Twisted框架。
代码看起来挺简洁的,因此。
Scrapy 0.24.0版本的包结构有大幅改变,与之前的旧版本完全不兼容。
Scrapy框架
Scrapy的框架比较难以理解,这跟
Scrapy改进
Html解析
Scrapy提供了lxml的相关解析器。但是使用更好的是BeautifulSoup,虽然解析速度会便慢。
使用Bloom过滤器
默认的网址过滤器(爬虫中的Visited表)是将一个url映射到MD5实现的。使用场景
利用redis构建分布式爬虫
目前还没有使用过这个技术,但是其实原理非常简单,把爬虫队列存储到Redis的列表中,利用Redis的分布式数据存储功能来实现分布式队列,这样就能够在不大动Scrapy的情况下进行分布式爬取。说句实话这个思路真得很赞!