puppeteer node爬蟲分布式高階

2021-09-14 02:48:25 字數 1991 閱讀 3609

1. 需要抓取的不同資料有很多,會同時開啟無頭瀏覽器去抓取,然後獲取到資料後又無厘頭的一股腦擠進資料庫

2. 無法保證同一時刻需要的資料只有乙個操作在進行

因為使用的是node,所以盡可能的尋找node支援的分布式框架

node版的

zookeeper

node版的

rabbitmq

發布者,給書旗起乙個標識為 37 (channel_id),然後是要抓取書的書籍id(channel_book_id)
// 我們以介面的形式接收爬取的引數    

// 簡易版請求(除了接收引數不做任何處理) -> 發布者

// 抓取時需要的引數

if (!req.query.channel_id && !req.query.channel_book_id) )

return null;

} // 發布者

// 連線rabbitmq

amqp.connect('amqp:').then(function(conn) )

// 連線並保持

消費者,接收到發布者傳遞過來的資料建立訊息佇列,然後用zookeeper建立臨時節點以保持佇列依次執行
var zookeeper = require('node-zookeeper-client');

// 根據標識動態引入js檔案

function modulecustomize(channel_id) .js`)}

var client = zookeeper.createclient('127.0.0.1:2181');

async function sleep(second) , second)

})}// 連線_zookeeper

client.once('connected', function () );

// 預存為1

ok = ok.then(function() );

ok = ok.then(function() );

});return ok;

// rabbitmq 處理

function dowork(msg) `

// 連線_zookeeper 判斷是否存在

client.exists(path, function (error, stat)

if (stat) else else

console.log('node is deleted.');

});}

});}

console.log('任務執行完畢')

});}

});}).catch(console.warn);

});

client.connect();

命令列啟動rab_consumer.js,{} 裡面就是我們接收到訊息佇列裡面的資料了

爬蟲 爬蟲初識

網路爬蟲 又被稱為網頁蜘蛛,網路機械人 是一種按照一定的規則,自動地抓取全球資訊網資訊的程式或者指令碼,通俗的講就是通過程式去獲取web頁面上自己想要的資料,也就是自動抓取資料。發起請求 通過http庫向目標站點發起請求,也就是傳送乙個request,請求可以包含額外的header等資訊,等待伺服器...

爬蟲 07 反爬蟲

回到頂部 爬蟲和反爬蟲基本概念 爬蟲 自動獲取 資料的程式,關鍵是批量的獲取。反爬蟲 使用技術手段防止爬蟲程式的方法。誤傷 反爬蟲技術將普通使用者識別為爬蟲,如果誤傷過高,效果再高也不能用。成本 反爬蟲需要的人力和機器成本。攔截 成功攔截爬蟲,一般攔截率越高,誤傷率越高。反爬蟲的目的 初級爬蟲 簡單...

爬蟲(一)初識爬蟲

網路爬蟲 又被稱為網頁蜘蛛,網路機械人 就是模擬瀏覽器傳送網路請求,接收請求響應,一種按照一定的規則,自動地抓取網際網路資訊的程式。原則上,只要是瀏覽器 客戶端 能做的事情,爬蟲都能夠做 爬蟲的工作流程 robots協議 通過robots協議告訴搜尋引擎哪些頁面可以抓取,哪些頁面不能抓取,但它僅僅是...