欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)激活碼778899分享:爬蟲(chóng)的分布式思維與實(shí)現(xiàn)思路

柚子快報(bào)激活碼778899分享:爬蟲(chóng)的分布式思維與實(shí)現(xiàn)思路

http://yzkb.51969.com/

爬蟲(chóng)的分布式思維與實(shí)現(xiàn)思路

基本構(gòu)架

scrapy-redis實(shí)現(xiàn)分布式,其實(shí)從原理上來(lái)說(shuō)很簡(jiǎn)單,這里為描述方便,我們把自己的核心服務(wù)器稱為master,而把用于跑爬蟲(chóng)程序的機(jī)器稱為slave

我們知道,采用scrapy框架抓取網(wǎng)頁(yè),我們需要首先給定它一些start_urls,爬蟲(chóng)首先訪問(wèn)start_urls里面的url,再根據(jù)我們的具體邏輯,對(duì)里面的元素、或者是其他的二級(jí)、三級(jí)頁(yè)面進(jìn)行抓取。而要實(shí)現(xiàn)分布式,我們只需要在這個(gè)starts_urls里面做文章就行了

我們?cè)趍aster上搭建一個(gè)redis數(shù)據(jù)庫(kù)(注意這個(gè)數(shù)據(jù)庫(kù)只用作url的存儲(chǔ)),并對(duì)每一個(gè)需要爬取的網(wǎng)站類(lèi)型,都開(kāi)辟一個(gè)單獨(dú)的列表字段。通過(guò)設(shè)置slave上scrapy-redis獲取url的地址為master地址。這樣的結(jié)果就是,盡管有多個(gè)slave,然而大家獲取url的地方只有一個(gè),那就是服務(wù)器master上的redis數(shù)據(jù)庫(kù)

并且,由于scrapy-redis自身的隊(duì)列機(jī)制,slave獲取的鏈接不會(huì)相互沖突。這樣各個(gè)slave在完成抓取任務(wù)之后,再把獲取的結(jié)果匯總到服務(wù)器上

好處

程序移植性強(qiáng),只要處理好路徑問(wèn)題,把slave上的程序移植到另一臺(tái)機(jī)器上運(yùn)行,基本上就是復(fù)制粘貼的事情

分布式爬蟲(chóng)思路

任務(wù)分發(fā)和調(diào)度:需要一個(gè)中心節(jié)點(diǎn)或者調(diào)度器來(lái)分發(fā)任務(wù)給各個(gè)爬蟲(chóng)節(jié)點(diǎn),并監(jiān)控任務(wù)的執(zhí)行情況??梢允褂孟㈥?duì)列(如RabbitMQ、Kafka)或分布式任務(wù)調(diào)度框架(如Celery)來(lái)實(shí)現(xiàn)任務(wù)的分發(fā)和調(diào)度。 數(shù)據(jù)存儲(chǔ)和去重:在分布式環(huán)境下,需要統(tǒng)一管理爬取的數(shù)據(jù),并進(jìn)行數(shù)據(jù)去重??梢允褂梅植际綌?shù)據(jù)庫(kù)(如MongoDB、Cassandra)或者分布式存儲(chǔ)系統(tǒng)(如Hadoop HDFS)來(lái)存儲(chǔ)數(shù)據(jù),并使用分布式去重算法(如布隆過(guò)濾器)來(lái)進(jìn)行數(shù)據(jù)去重。 URL管理:在分布式環(huán)境下,需要管理待爬取的URL隊(duì)列,并保證每個(gè)URL只被爬取一次??梢允褂梅植际疥?duì)列(如Redis隊(duì)列)來(lái)管理URL隊(duì)列,并使用分布式鎖來(lái)保證URL的唯一性。 爬蟲(chóng)節(jié)點(diǎn)間通信:爬蟲(chóng)節(jié)點(diǎn)之間需要進(jìn)行協(xié)作和通信,比如共享URL隊(duì)列、傳遞爬取結(jié)果等??梢允褂梅植际较⑾到y(tǒng)(如RabbitMQ、Kafka)或者分布式存儲(chǔ)系統(tǒng)來(lái)實(shí)現(xiàn)節(jié)點(diǎn)間的通信和數(shù)據(jù)共享。 容錯(cuò)和重試機(jī)制:由于分布式爬蟲(chóng)環(huán)境中存在多個(gè)節(jié)點(diǎn),節(jié)點(diǎn)之間可能存在網(wǎng)絡(luò)故障、節(jié)點(diǎn)宕機(jī)等問(wèn)題,需要考慮容錯(cuò)和重試機(jī)制,保證系統(tǒng)的穩(wěn)定性和可靠性??梢允褂眯奶鴻C(jī)制、故障恢復(fù)策略等來(lái)處理節(jié)點(diǎn)故障和網(wǎng)絡(luò)異常。 爬蟲(chóng)任務(wù)監(jiān)控和日志:為了實(shí)時(shí)監(jiān)控爬蟲(chóng)節(jié)點(diǎn)的狀態(tài)和任務(wù)執(zhí)行情況,可以引入日志記錄和監(jiān)控系統(tǒng),對(duì)爬蟲(chóng)任務(wù)進(jìn)行監(jiān)控和統(tǒng)計(jì)分析,及時(shí)發(fā)現(xiàn)和解決問(wèn)題。

分布式爬蟲(chóng)的實(shí)現(xiàn)

使用三臺(tái)機(jī)器,一臺(tái)是windows,兩臺(tái)是centos,分別在兩臺(tái)機(jī)器上部署scrapy來(lái)進(jìn)行分布式抓取一個(gè)網(wǎng)站 windows的ip地址為192.168.xxx.XXX,用來(lái)作為redis的master端,centos的機(jī)器作為slave master的爬蟲(chóng)運(yùn)行時(shí)會(huì)把提取到的url封裝成request放到redis中的數(shù)據(jù)庫(kù):“dmoz:requests”,并且從該數(shù)據(jù)庫(kù)中提取request后下載網(wǎng)頁(yè),再把網(wǎng)頁(yè)的內(nèi)容存放到redis的另一個(gè)數(shù)據(jù)庫(kù)中“dmoz:items” slave從master的redis中取出待抓取的request,下載完網(wǎng)頁(yè)之后就把網(wǎng)頁(yè)的內(nèi)容發(fā)送回master的redis 重復(fù)上面的3和4,直到master的redis中的“dmoz:requests”數(shù)據(jù)庫(kù)為空,再把master的redis中的“dmoz:items”數(shù)據(jù)庫(kù)寫(xiě)入到mongodb中 master里的reids還有一個(gè)數(shù)據(jù)“dmoz:dupefilter”是用來(lái)存儲(chǔ)抓取過(guò)的url的指紋(使用哈希函數(shù)將url運(yùn)算后的結(jié)果),是防止重復(fù)抓取的

scrapy-redis框架的安裝

一個(gè)三方的基于redis的分布式爬蟲(chóng)框架,配合scrapy使用,讓爬蟲(chóng)具有了分布式爬取的功能

github地址:?GitHub - rmax/scrapy-redis: Redis-based components for Scrapy.

安裝

pip install scrapy-redis==0.7.3

?

柚子快報(bào)激活碼778899分享:爬蟲(chóng)的分布式思維與實(shí)現(xiàn)思路

http://yzkb.51969.com/

相關(guān)文章

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18907778.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄