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的情况下进行分布式爬取。说句实话这个思路真得很赞!