python爬虫系列12--Scrapy应用

1、Scrapy架构

                                    

2、每个Spider必须继承自scrapy.Spider类,scrapy.Spider没有什么特殊的功能,仅仅提供了start_requests()的默认实现,读取并请求Spider属性中的start_urls,并根据返回的response调用Spider的parse方法。

Scrapy除了提供Spider类作为基类进行拓展,还提供了CrawlSpider、XMLFeedSpider、CSVFeedSpider和SitemapSpider等类来实现不同的爬虫任务。

3、增量式爬虫去重方案:关系型数据库去重、缓存数据库去重、内存去重,比较好的方案是 内存去重+缓存数据库。

4、BloomFilter,不适合零错误的应用场合。多哈希函数映射,创建m位位数组,选择k个不同的哈希函数,第i个哈希函数对字符串str哈希的结果记为h(i,str),且h(i,str)的范围是0-m-1,k个哈希函数可以将k位二进制位置1。合理选择参数,在一定的漏失概率下满足条件。

5、分布式爬虫,使用Redis,关键在于调度。

6、人性化爬虫:pyspider,强大的webUI。

7、Nutch是一个非常成熟的产品化网络爬虫。Nutch 1.x支持细粒度配置,以Apache Hadoop数据结构为依托,提供了良好的批处理支持。 Nutch不仅具备了插件式和模块化优点,还提供了可扩展的功能接口,比如解析、索引和自定义ScoringFilter实现。Nutch可以自动发现网页超链接,减少很多维护工作,比如检查坏链接,为所有访问过的页面建立拷贝进行搜索。

Nutch主要功能:

 

  • 默认情况下独立完成获取与解析,大大降低了使用Nutch抓取时解析阶段出错风险。
  • 在移除Lucene依赖之后对插件进行了彻底检查。
  • 对Nutch默认支持的各种文件处理插件进行了优化。Tika已经支持普通文本、XML、OpenDocument(OpenOffice.org)、Microsoft Office (Word、Excel、Powerpoint)、PDF、RTF、MP3(ID3标签)的解析。Nutch自带的解析器插件现在有Feed(RSS/Atom)、HTML、Ext、JavaScript、SWF、Tika & ZIP。
  • MapReduce
  • 分布式文件系统(Hadoop)
  • 链接图数据库
  • NTLM认证

8、scrapy爬取妹子图片实例

start project SpiderBeauty

参考网址:http://www.scrapyd.cn/example/176.html

用到了scrapy的所有组件,包括middleware。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值