分布式“爬蟲IP”,提高爬取效率必要掌握的知識
多線程、多進(jìn)程、協(xié)程都能加速,但終究還是單機(jī)的爬蟲。要真正做到規(guī);得來靠分布式爬蟲來搞。
分布式的核心是什么?
資源共享。比如爬取隊(duì)列共享、去重指紋共享等等。我們可以使用一些基礎(chǔ)的隊(duì)列或組件來實(shí)現(xiàn)分布式,比如 RabbitMQ、Celery、Kafka、Redis 等等,但經(jīng)過很多人的嘗試,自己去實(shí)現(xiàn)一個(gè)分布式爬蟲,性能和擴(kuò)展性總會出現(xiàn)一些問題,當(dāng)然特別牛逼的除外哈。
不少企業(yè)內(nèi)部其實(shí)也有自己開發(fā)的一套分布式爬蟲,和業(yè)務(wù)更緊密,這種當(dāng)然是最好了,F(xiàn)在主流的 Python 分布式爬蟲還是基于 Scrapy 的,對接 Scrapy-Redis、Scrapy-Redis-BloomFilter 或者用 Scrapy-Cluster 等等,他們都是基于 Redis 來共享爬取隊(duì)列的,總會多多少少遇到一些內(nèi)存的問題。
所以一些人也考慮對接到了其他的消息隊(duì)列上面,比如 RabbitMQ、Kafka 等等,解決一些問題,效率也不差?傊,要提高爬取效率,分布式還是必須要掌握的。
版權(quán)保護(hù): 本文「分布式“爬蟲IP”,提高爬取效率必要掌握的知識」由 云主機(jī)配置專家 原創(chuàng),轉(zhuǎn)載請保留鏈接: http://m.iqcg.cn/docs/proxyip/1759.html