亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

實(shí)時(shí)文章采集

實(shí)時(shí)文章采集

解決方案:使用LogHub進(jìn)行日志實(shí)時(shí)采集

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 344 次瀏覽 ? 2020-09-01 14:32 ? 來(lái)自相關(guān)話(huà)題

  使用LogHub實(shí)時(shí)記錄采集
  背景
  “我要訂購外賣(mài)”是基于平臺的電子商務(wù)網(wǎng)站,用戶(hù),餐廳,送貨人員等. 用戶(hù)可以在網(wǎng)頁(yè),應用程序,微信,支付寶等上下訂單;商家收到訂單后開(kāi)始處理,并自動(dòng)通知周邊快遞;快遞員將食物交付給用戶(hù).
  
  操作要求
  在操作過(guò)程中,發(fā)現了以下問(wèn)題:
  很難獲得用戶(hù). 向渠道(網(wǎng)頁(yè),微信推送)投入大量廣告費,接收一些用戶(hù),但無(wú)法判斷每個(gè)渠道的有效性,用戶(hù)常常抱怨交付緩慢,但是在哪個(gè)環(huán)節,訂單的接收,分配,處理?如何優(yōu)化?用戶(hù)操作通常會(huì )參與一些優(yōu)惠活動(dòng)(發(fā)送優(yōu)惠券),但無(wú)法獲得效果. 計劃問(wèn)題,如何幫助商家在高峰時(shí)段提前庫存?如何派遣更多快遞員到指定地區?客戶(hù)服務(wù)中,用戶(hù)反饋說(shuō)訂單失敗,用戶(hù)背后的操作是什么?系統中有錯誤嗎?數據采集難點(diǎn)
  在數據操作過(guò)程中,第一步是如何集中采集分散的日志數據,這將面臨以下挑戰:
  我們需要采集分散的外部和內部日志以進(jìn)行統一管理. 過(guò)去,這部分工作需要很多工作,但現在可以通過(guò)LogHub 采集函數進(jìn)行訪(fǎng)問(wèn).
  
  日志統一管理和配置創(chuàng )建管理日志項目項目,例如myorder
  創(chuàng )建日志存儲庫Logstore,以從不同的數據源生成日志,例如:
  如果需要清除原創(chuàng )數據和ETL,則可以創(chuàng )建一些中間結果日志存儲區
 ?。ㄓ嘘P(guān)更多操作,請參閱快速啟動(dòng)/管理控制臺)
  用戶(hù)提升日志采集
  為了獲取新用戶(hù),通常有兩種方法:
  網(wǎng)站注冊時(shí)有直接優(yōu)惠券
  掃描其他渠道的QR碼并放置優(yōu)惠券
  方法
  定義以下注冊服務(wù)器地址,并生成QR碼(傳單,網(wǎng)頁(yè))供用戶(hù)注冊和掃描. 當用戶(hù)掃描此頁(yè)面進(jìn)行注冊時(shí),他知道該用戶(hù)是通過(guò)特定來(lái)源輸入并記錄日志的.
  http://examplewebsite/login%3F ... Dkd4b
  服務(wù)器接受請求后,服務(wù)器將輸出以下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序將日志輸出到硬盤(pán),然后通過(guò)Logtail 采集應用程序通過(guò)SDK寫(xiě)入日志,請參見(jiàn)SDK服務(wù)器數據采集
  支付寶/微信公眾號編程是一種典型的Web端模式,通常有三種日志類(lèi)型:
  將練習日志寫(xiě)入本地文件,并通過(guò)Logtail配置正則表達式寫(xiě)入指定的Logstore. 日志可以在Docker中生成. 容器服務(wù)可用于集成日志服務(wù). 可以使用Java程序Log4J Appender. 寫(xiě)); Log4J Appender C#,Python,Java,PHP,C等可以使用SDK寫(xiě)入Windows服務(wù)器. 您可以使用Logstash 采集終端用戶(hù)日志訪(fǎng)問(wèn)Web / M網(wǎng)站頁(yè)面的用戶(hù)行為
  頁(yè)面用戶(hù)行為集合可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器之間的交互: 例如下訂單,登錄和注銷(xiāo). 該頁(yè)面沒(méi)有后臺服務(wù)器交互: 該請求直接在前端處理,例如滾動(dòng),關(guān)閉頁(yè)面等. 方法第一種方法可以引用服務(wù)器采集方法. 第二種方法可以使用Tracking Pixel / JS庫采集頁(yè)面行為,請參考Tracking Web界面服務(wù)器日志的操作和維護
  例如:
  不同網(wǎng)絡(luò )環(huán)境下的方法數據采集
  LogHub在每個(gè)區域提供訪(fǎng)問(wèn)點(diǎn),每個(gè)區域提供三個(gè)訪(fǎng)問(wèn)點(diǎn):
  有關(guān)更多信息,請參閱網(wǎng)絡(luò )訪(fǎng)問(wèn),始終有一種適合您.
  其他,請參閱LogHub完整采集方法. 查看日志實(shí)時(shí)消耗,涉及流計算,數據清理,數據倉庫和索引查詢(xún)等功能. 查看全部

  使用LogHub實(shí)時(shí)記錄采集
  背景
  “我要訂購外賣(mài)”是基于平臺的電子商務(wù)網(wǎng)站,用戶(hù),餐廳,送貨人員等. 用戶(hù)可以在網(wǎng)頁(yè),應用程序,微信,支付寶等上下訂單;商家收到訂單后開(kāi)始處理,并自動(dòng)通知周邊快遞;快遞員將食物交付給用戶(hù).
  
  操作要求
  在操作過(guò)程中,發(fā)現了以下問(wèn)題:
  很難獲得用戶(hù). 向渠道(網(wǎng)頁(yè),微信推送)投入大量廣告費,接收一些用戶(hù),但無(wú)法判斷每個(gè)渠道的有效性,用戶(hù)常常抱怨交付緩慢,但是在哪個(gè)環(huán)節,訂單的接收,分配,處理?如何優(yōu)化?用戶(hù)操作通常會(huì )參與一些優(yōu)惠活動(dòng)(發(fā)送優(yōu)惠券),但無(wú)法獲得效果. 計劃問(wèn)題,如何幫助商家在高峰時(shí)段提前庫存?如何派遣更多快遞員到指定地區?客戶(hù)服務(wù)中,用戶(hù)反饋說(shuō)訂單失敗,用戶(hù)背后的操作是什么?系統中有錯誤嗎?數據采集難點(diǎn)
  在數據操作過(guò)程中,第一步是如何集中采集分散的日志數據,這將面臨以下挑戰:
  我們需要采集分散的外部和內部日志以進(jìn)行統一管理. 過(guò)去,這部分工作需要很多工作,但現在可以通過(guò)LogHub 采集函數進(jìn)行訪(fǎng)問(wèn).
  
  日志統一管理和配置創(chuàng )建管理日志項目項目,例如myorder
  創(chuàng )建日志存儲庫Logstore,以從不同的數據源生成日志,例如:
  如果需要清除原創(chuàng )數據和ETL,則可以創(chuàng )建一些中間結果日志存儲區
 ?。ㄓ嘘P(guān)更多操作,請參閱快速啟動(dòng)/管理控制臺)
  用戶(hù)提升日志采集
  為了獲取新用戶(hù),通常有兩種方法:
  網(wǎng)站注冊時(shí)有直接優(yōu)惠券
  掃描其他渠道的QR碼并放置優(yōu)惠券
  方法
  定義以下注冊服務(wù)器地址,并生成QR碼(傳單,網(wǎng)頁(yè))供用戶(hù)注冊和掃描. 當用戶(hù)掃描此頁(yè)面進(jìn)行注冊時(shí),他知道該用戶(hù)是通過(guò)特定來(lái)源輸入并記錄日志的.
  http://examplewebsite/login%3F ... Dkd4b
  服務(wù)器接受請求后,服務(wù)器將輸出以下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序將日志輸出到硬盤(pán),然后通過(guò)Logtail 采集應用程序通過(guò)SDK寫(xiě)入日志,請參見(jiàn)SDK服務(wù)器數據采集
  支付寶/微信公眾號編程是一種典型的Web端模式,通常有三種日志類(lèi)型:
  將練習日志寫(xiě)入本地文件,并通過(guò)Logtail配置正則表達式寫(xiě)入指定的Logstore. 日志可以在Docker中生成. 容器服務(wù)可用于集成日志服務(wù). 可以使用Java程序Log4J Appender. 寫(xiě)); Log4J Appender C#,Python,Java,PHP,C等可以使用SDK寫(xiě)入Windows服務(wù)器. 您可以使用Logstash 采集終端用戶(hù)日志訪(fǎng)問(wèn)Web / M網(wǎng)站頁(yè)面的用戶(hù)行為
  頁(yè)面用戶(hù)行為集合可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器之間的交互: 例如下訂單,登錄和注銷(xiāo). 該頁(yè)面沒(méi)有后臺服務(wù)器交互: 該請求直接在前端處理,例如滾動(dòng),關(guān)閉頁(yè)面等. 方法第一種方法可以引用服務(wù)器采集方法. 第二種方法可以使用Tracking Pixel / JS庫采集頁(yè)面行為,請參考Tracking Web界面服務(wù)器日志的操作和維護
  例如:
  不同網(wǎng)絡(luò )環(huán)境下的方法數據采集
  LogHub在每個(gè)區域提供訪(fǎng)問(wèn)點(diǎn),每個(gè)區域提供三個(gè)訪(fǎng)問(wèn)點(diǎn):
  有關(guān)更多信息,請參閱網(wǎng)絡(luò )訪(fǎng)問(wèn),始終有一種適合您.
  其他,請參閱LogHub完整采集方法. 查看日志實(shí)時(shí)消耗,涉及流計算,數據清理,數據倉庫和索引查詢(xún)等功能.

基于anyproxy的微信公眾號文章爬取,收錄閱讀數點(diǎn)贊數

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 228 次瀏覽 ? 2020-08-27 21:23 ? 來(lái)自相關(guān)話(huà)題

  基于anyproxy的微信公眾號文章爬取,收錄閱讀數點(diǎn)贊數
  github項目地址
  錄制的視頻:點(diǎn)擊抵達
  
  基本原理AnyProxy是一個(gè)阿里開(kāi)源的HTTP代理服務(wù)器,類(lèi)似fiddler和charles,但是提供了二次開(kāi)發(fā)能力,可以編撰js代碼改變http/https懇求和響應為了爬取一個(gè)微信公眾號的全部文章,首先就是獲取全部文章,然后一篇一篇去打開(kāi)獲取文章標題,作者,閱讀數,點(diǎn)贊數(這兩個(gè)只能在微信瀏覽器獲?。┟總€(gè)微信公眾號都提供查看歷史消息的功能,點(diǎn)擊去打開(kāi)這個(gè)網(wǎng)頁(yè),不停下滾,可以查到全部發(fā)布文章。在這一步,基于anyproxy,修改了這個(gè)網(wǎng)頁(yè)html,注入一段使頁(yè)面不停往下滾動(dòng)的js腳本,當滾到頂部,就獲取了全部文章列表。 本質(zhì)上是中間人攻擊。
  獲取完全部文章的內容(包括url,標題,發(fā)布時(shí)間等等)后,下一步就是循環(huán)通知陌陌瀏覽器一個(gè)一個(gè)去打開(kāi)這種文章網(wǎng)頁(yè)。每個(gè)文章網(wǎng)頁(yè)也注入js腳本,功能是不停的檢測頁(yè)面的點(diǎn)贊數和閱讀數,檢測到,就往某服務(wù)器發(fā),后臺每成功收到一個(gè)文章的點(diǎn)贊數和閱讀數,就通知陌陌瀏覽器打開(kāi)下一個(gè)url。這里我使用了socketio,實(shí)現陌陌瀏覽器和自建的koa服務(wù)器之間的通信。
  如圖所示:
  
  獲取文章列表演示
  
  一篇一篇打開(kāi)文章鏈接
  如何運行
  第一步,一定要安裝成功anyproxy,這一步請詳盡閱讀anyproxy的官方教程,寫(xiě)的太詳盡,要保證能成功代理https,能查看到https的body內容。
  npm install
npm start
  會(huì )手動(dòng)打開(kāi)一個(gè)result.html,實(shí)時(shí)查看爬取文章的內容
  點(diǎn)擊一個(gè)微信公眾號,點(diǎn)擊查看歷史消息,之后歷史頁(yè)面會(huì )不停的滾動(dòng)究竟,滾動(dòng)完畢,就開(kāi)始一篇一篇打開(kāi)文章,爬取內容。
  
  實(shí)時(shí)結果顯示.jpg
  具體過(guò)程
  1.第一步,要獲取一個(gè)公眾號的全部歷史文章。在早已設置好anyproxy代理的真機上,查看歷史消息,這時(shí)陌陌會(huì )打開(kāi)歷史文章網(wǎng)頁(yè)。
  獲取一個(gè)html文檔:
  
  ,var msgList就是我們須要的歷史文章數據,簡(jiǎn)單正則匹配下來(lái),替代非法字符,JSON.parse轉成我們須要的格式。 基于anyproxy,我們給這個(gè)html文檔注入一段腳本,目的是使這個(gè)網(wǎng)頁(yè)不停的往下自己滾動(dòng),觸發(fā)瀏覽器去獲得更多的文章。
  var scrollKey = setInterval(function () {
window.scrollTo(0,document.body.scrollHeight);
},1000);
  當網(wǎng)頁(yè)滾究竟,再次獲取文章,這個(gè)時(shí)侯,同樣的是get懇求,但是返回了Content-Type為application/json的格式,這里同樣的方式,正則匹配找出并低格成我們須要的格式
  
  同時(shí)當can_msg_continue為0時(shí),表示早已拉到底,獲取了全部文章。
  至此,獲得了一個(gè)公眾號的全部文章,包括文章標題,作者,url。但是沒(méi)有閱讀數和點(diǎn)贊數,這須要打開(kāi)具體的文章鏈接,才能看得到。
  我們還沒(méi)獲得閱讀數和點(diǎn)贊數,接下來(lái)就是一步一步使微信瀏覽器不停地打開(kāi)具體文章,觸發(fā)陌陌瀏覽器獲取閱讀數和點(diǎn)贊數。這里使用了socket.io,讓文章頁(yè)面聯(lián)接自定義的服務(wù)器,服務(wù)器主動(dòng)通知瀏覽器下一個(gè)點(diǎn)開(kāi)的文章鏈接,這樣單向通信,一個(gè)循環(huán)才能獲取具體文章的閱讀數和點(diǎn)贊。
  socket.on('url', function (data) {
window.location = data.url;
});
  閱讀數和點(diǎn)贊可以在瀏覽器端,不停檢測dom元素是否渲染下來(lái)之后搜集發(fā)往服務(wù)器,也可以直接anyproxy檢測下來(lái)(這里我采用前一種)。
  key = setInterval(function () {
var readNum = $('#readNum3').text().trim();
if (!readNum) return;
var likeNum = $('#likeNum3').text().trim();
var postUser = $('#post-user').text().trim();
var postDate = $('#post-date').text().trim() || $('#publish_time').text().trim();
var activityName = $('#activity-name').text().trim();
var js_share_source = $('#js_share_source').attr('href');
socket.emit('crawler', {
readNum: readNum,
likeNum: likeNum,
postUser: postUser,
postDate: postDate,
activityName: activityName,
js_share_source: js_share_source
});
}, 1000); 查看全部

  基于anyproxy的微信公眾號文章爬取,收錄閱讀數點(diǎn)贊數
  github項目地址
  錄制的視頻:點(diǎn)擊抵達
  
  基本原理AnyProxy是一個(gè)阿里開(kāi)源的HTTP代理服務(wù)器,類(lèi)似fiddler和charles,但是提供了二次開(kāi)發(fā)能力,可以編撰js代碼改變http/https懇求和響應為了爬取一個(gè)微信公眾號的全部文章,首先就是獲取全部文章,然后一篇一篇去打開(kāi)獲取文章標題,作者,閱讀數,點(diǎn)贊數(這兩個(gè)只能在微信瀏覽器獲?。┟總€(gè)微信公眾號都提供查看歷史消息的功能,點(diǎn)擊去打開(kāi)這個(gè)網(wǎng)頁(yè),不停下滾,可以查到全部發(fā)布文章。在這一步,基于anyproxy,修改了這個(gè)網(wǎng)頁(yè)html,注入一段使頁(yè)面不停往下滾動(dòng)的js腳本,當滾到頂部,就獲取了全部文章列表。 本質(zhì)上是中間人攻擊。
  獲取完全部文章的內容(包括url,標題,發(fā)布時(shí)間等等)后,下一步就是循環(huán)通知陌陌瀏覽器一個(gè)一個(gè)去打開(kāi)這種文章網(wǎng)頁(yè)。每個(gè)文章網(wǎng)頁(yè)也注入js腳本,功能是不停的檢測頁(yè)面的點(diǎn)贊數和閱讀數,檢測到,就往某服務(wù)器發(fā),后臺每成功收到一個(gè)文章的點(diǎn)贊數和閱讀數,就通知陌陌瀏覽器打開(kāi)下一個(gè)url。這里我使用了socketio,實(shí)現陌陌瀏覽器和自建的koa服務(wù)器之間的通信。
  如圖所示:
  
  獲取文章列表演示
  
  一篇一篇打開(kāi)文章鏈接
  如何運行
  第一步,一定要安裝成功anyproxy,這一步請詳盡閱讀anyproxy的官方教程,寫(xiě)的太詳盡,要保證能成功代理https,能查看到https的body內容。
  npm install
npm start
  會(huì )手動(dòng)打開(kāi)一個(gè)result.html,實(shí)時(shí)查看爬取文章的內容
  點(diǎn)擊一個(gè)微信公眾號,點(diǎn)擊查看歷史消息,之后歷史頁(yè)面會(huì )不停的滾動(dòng)究竟,滾動(dòng)完畢,就開(kāi)始一篇一篇打開(kāi)文章,爬取內容。
  
  實(shí)時(shí)結果顯示.jpg
  具體過(guò)程
  1.第一步,要獲取一個(gè)公眾號的全部歷史文章。在早已設置好anyproxy代理的真機上,查看歷史消息,這時(shí)陌陌會(huì )打開(kāi)歷史文章網(wǎng)頁(yè)。
  獲取一個(gè)html文檔:
  
  ,var msgList就是我們須要的歷史文章數據,簡(jiǎn)單正則匹配下來(lái),替代非法字符,JSON.parse轉成我們須要的格式。 基于anyproxy,我們給這個(gè)html文檔注入一段腳本,目的是使這個(gè)網(wǎng)頁(yè)不停的往下自己滾動(dòng),觸發(fā)瀏覽器去獲得更多的文章。
  var scrollKey = setInterval(function () {
window.scrollTo(0,document.body.scrollHeight);
},1000);
  當網(wǎng)頁(yè)滾究竟,再次獲取文章,這個(gè)時(shí)侯,同樣的是get懇求,但是返回了Content-Type為application/json的格式,這里同樣的方式,正則匹配找出并低格成我們須要的格式
  
  同時(shí)當can_msg_continue為0時(shí),表示早已拉到底,獲取了全部文章。
  至此,獲得了一個(gè)公眾號的全部文章,包括文章標題,作者,url。但是沒(méi)有閱讀數和點(diǎn)贊數,這須要打開(kāi)具體的文章鏈接,才能看得到。
  我們還沒(méi)獲得閱讀數和點(diǎn)贊數,接下來(lái)就是一步一步使微信瀏覽器不停地打開(kāi)具體文章,觸發(fā)陌陌瀏覽器獲取閱讀數和點(diǎn)贊數。這里使用了socket.io,讓文章頁(yè)面聯(lián)接自定義的服務(wù)器,服務(wù)器主動(dòng)通知瀏覽器下一個(gè)點(diǎn)開(kāi)的文章鏈接,這樣單向通信,一個(gè)循環(huán)才能獲取具體文章的閱讀數和點(diǎn)贊。
  socket.on('url', function (data) {
window.location = data.url;
});
  閱讀數和點(diǎn)贊可以在瀏覽器端,不停檢測dom元素是否渲染下來(lái)之后搜集發(fā)往服務(wù)器,也可以直接anyproxy檢測下來(lái)(這里我采用前一種)。
  key = setInterval(function () {
var readNum = $('#readNum3').text().trim();
if (!readNum) return;
var likeNum = $('#likeNum3').text().trim();
var postUser = $('#post-user').text().trim();
var postDate = $('#post-date').text().trim() || $('#publish_time').text().trim();
var activityName = $('#activity-name').text().trim();
var js_share_source = $('#js_share_source').attr('href');
socket.emit('crawler', {
readNum: readNum,
likeNum: likeNum,
postUser: postUser,
postDate: postDate,
activityName: activityName,
js_share_source: js_share_source
});
}, 1000);

爬一爬數據采集實(shí)戰系列7「調度任務(wù)」:采集微博實(shí)時(shí)熱搜榜信息

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 413 次瀏覽 ? 2020-08-26 07:43 ? 來(lái)自相關(guān)話(huà)題

  爬一爬數據采集實(shí)戰系列7「調度任務(wù)」:采集微博實(shí)時(shí)熱搜榜信息
  本篇教程為中級實(shí)戰案例,用【調度】功能多次采集微博實(shí)時(shí)熱搜榜數據。
  ##插件安裝及菜鳥(niǎo)入門(mén)教程可以看訂閱號第一篇文章 極簡(jiǎn)易用網(wǎng)頁(yè)采集器:爬一爬數據采集實(shí)戰教程
  
  微博實(shí)時(shí)熱搜榜每10min更新一次。如果想采集某個(gè)時(shí)間段內實(shí)時(shí)熱搜榜的完整信息,需每隔十分鐘自動(dòng)運行,這樣的效率極低,不可取。
  
  實(shí)時(shí)熱搜榜的入選規則
  今天就教你們一個(gè)方式,用調度器定時(shí)采集數據。這樣,只要我們設置好調度任務(wù),讓任務(wù)手動(dòng)運行,我們就可以高枕無(wú)憂(yōu)的打鬧去了。
  本例設置了在19:00--21:00期間每隔10分鐘采集微博熱搜榜數據。
  操作步驟
  1.確保帳號已登陸,打開(kāi)須要采集的微博實(shí)時(shí)熱搜榜網(wǎng)站,點(diǎn)擊瀏覽器插件欄的“爬”字圖標,啟動(dòng)插件。
  2.點(diǎn)擊頁(yè)面上須要采集的信息。如果色調框沒(méi)有收錄所有的任務(wù)數據, 點(diǎn)擊切換按鍵,切換算法,直到選中所有的任務(wù)數據。(注:下載為js-engine)
  
  依次選定要抓取的元素
  3.先點(diǎn)擊“完成”按鈕,再點(diǎn)擊“測試”按鈕,測試采集的數據是否就是您想要的。
  
  測試數據
  4.確認測試成功后,點(diǎn)擊”OK”關(guān)閉測試窗口。填寫(xiě)任務(wù)名稱(chēng)(長(cháng)度為4-32的字符,必填),并依照個(gè)人須要更改列名。
  5.點(diǎn)擊“提交”按鈕,創(chuàng )建任務(wù)。
  
  創(chuàng )建任務(wù)
  6.任務(wù)創(chuàng )建成功后,在官網(wǎng)導航欄“任務(wù)”頁(yè)面,點(diǎn)擊”打開(kāi)任務(wù)調度器”,調度頁(yè)面便出現在瀏覽器標簽頁(yè)。
  
  打開(kāi)調度器
  7.在所創(chuàng )建的任務(wù)后點(diǎn)擊”管理”選項。
  
  打開(kāi)任務(wù)管理頁(yè)面
  8.點(diǎn)擊”調度”選項,新建調度,設置定時(shí)任務(wù)。
  
  新建調度任務(wù)
  9.根據Cron表達式,設置任務(wù)抓取頻度,如下圖所示。具體可參考”教程中心”熱門(mén)問(wèn)題中的“什么是Cron表達式”。
 ?。?注:本例設置的是 在19:00--21:00之間每隔10分抓取頁(yè)面)
  
  設置Cron表達式
  10.調度配置成功后,任務(wù)按照設置頻度手動(dòng)運行。我們可在調度管理標簽頁(yè)面,看到任務(wù)的運行狀態(tài)。(#注:在任務(wù)調度期間,該頁(yè)面不關(guān)掉。)
  
  查看調度狀態(tài)
  11.點(diǎn)擊任務(wù)”數據”選項,我們可以看見(jiàn)多批次的數據。(#注:數據從19:00開(kāi)始,每個(gè)批次間隔10分鐘)
  
  查看數據
  Tips:
 ?、俦纠螺d器為js-engine
 ?、跒楸WC數據穩定,可將頻度值大一點(diǎn),預留足夠的抓取時(shí)間。
 ?、巯肟匆曨l版調度教程,趕緊去官網(wǎng)教程中心吧。
 ?、芨紺ron表達式的一些事例:
  表達式
  釋義
  提示
  0 12 * * ?
  每天12:00
  相當于’0 12 */1 * ?’
  15 10 ? * *
  每天10:15
  相當于’15 10 * * ?’或’15 10 */1 * ?’
  * 14 * * ?
  每天14:00到14:59,每隔1分鐘
  0/5 14 * * ?
  每天14:00到14:59,每隔5分鐘
  相當于’*/5 14 * * ?’
  0-5 14 * * ?
  每天14:00到14:05,每隔1分鐘
  10,44 14 ? * 4
  每周三14:10和14:44
  15 10 15 * ?
  每月15日的10:15
  15 10 ? * 6L
  每月最后一個(gè)周日的10:15
  15 10 ? * 6#3
  每月第三個(gè)周日的10:15 查看全部

  爬一爬數據采集實(shí)戰系列7「調度任務(wù)」:采集微博實(shí)時(shí)熱搜榜信息
  本篇教程為中級實(shí)戰案例,用【調度】功能多次采集微博實(shí)時(shí)熱搜榜數據。
  ##插件安裝及菜鳥(niǎo)入門(mén)教程可以看訂閱號第一篇文章 極簡(jiǎn)易用網(wǎng)頁(yè)采集器:爬一爬數據采集實(shí)戰教程
  
  微博實(shí)時(shí)熱搜榜每10min更新一次。如果想采集某個(gè)時(shí)間段內實(shí)時(shí)熱搜榜的完整信息,需每隔十分鐘自動(dòng)運行,這樣的效率極低,不可取。
  
  實(shí)時(shí)熱搜榜的入選規則
  今天就教你們一個(gè)方式,用調度器定時(shí)采集數據。這樣,只要我們設置好調度任務(wù),讓任務(wù)手動(dòng)運行,我們就可以高枕無(wú)憂(yōu)的打鬧去了。
  本例設置了在19:00--21:00期間每隔10分鐘采集微博熱搜榜數據。
  操作步驟
  1.確保帳號已登陸,打開(kāi)須要采集的微博實(shí)時(shí)熱搜榜網(wǎng)站,點(diǎn)擊瀏覽器插件欄的“爬”字圖標,啟動(dòng)插件。
  2.點(diǎn)擊頁(yè)面上須要采集的信息。如果色調框沒(méi)有收錄所有的任務(wù)數據, 點(diǎn)擊切換按鍵,切換算法,直到選中所有的任務(wù)數據。(注:下載為js-engine)
  
  依次選定要抓取的元素
  3.先點(diǎn)擊“完成”按鈕,再點(diǎn)擊“測試”按鈕,測試采集的數據是否就是您想要的。
  
  測試數據
  4.確認測試成功后,點(diǎn)擊”OK”關(guān)閉測試窗口。填寫(xiě)任務(wù)名稱(chēng)(長(cháng)度為4-32的字符,必填),并依照個(gè)人須要更改列名。
  5.點(diǎn)擊“提交”按鈕,創(chuàng )建任務(wù)。
  
  創(chuàng )建任務(wù)
  6.任務(wù)創(chuàng )建成功后,在官網(wǎng)導航欄“任務(wù)”頁(yè)面,點(diǎn)擊”打開(kāi)任務(wù)調度器”,調度頁(yè)面便出現在瀏覽器標簽頁(yè)。
  
  打開(kāi)調度器
  7.在所創(chuàng )建的任務(wù)后點(diǎn)擊”管理”選項。
  
  打開(kāi)任務(wù)管理頁(yè)面
  8.點(diǎn)擊”調度”選項,新建調度,設置定時(shí)任務(wù)。
  
  新建調度任務(wù)
  9.根據Cron表達式,設置任務(wù)抓取頻度,如下圖所示。具體可參考”教程中心”熱門(mén)問(wèn)題中的“什么是Cron表達式”。
 ?。?注:本例設置的是 在19:00--21:00之間每隔10分抓取頁(yè)面)
  
  設置Cron表達式
  10.調度配置成功后,任務(wù)按照設置頻度手動(dòng)運行。我們可在調度管理標簽頁(yè)面,看到任務(wù)的運行狀態(tài)。(#注:在任務(wù)調度期間,該頁(yè)面不關(guān)掉。)
  
  查看調度狀態(tài)
  11.點(diǎn)擊任務(wù)”數據”選項,我們可以看見(jiàn)多批次的數據。(#注:數據從19:00開(kāi)始,每個(gè)批次間隔10分鐘)
  
  查看數據
  Tips:
 ?、俦纠螺d器為js-engine
 ?、跒楸WC數據穩定,可將頻度值大一點(diǎn),預留足夠的抓取時(shí)間。
 ?、巯肟匆曨l版調度教程,趕緊去官網(wǎng)教程中心吧。
 ?、芨紺ron表達式的一些事例:
  表達式
  釋義
  提示
  0 12 * * ?
  每天12:00
  相當于’0 12 */1 * ?’
  15 10 ? * *
  每天10:15
  相當于’15 10 * * ?’或’15 10 */1 * ?’
  * 14 * * ?
  每天14:00到14:59,每隔1分鐘
  0/5 14 * * ?
  每天14:00到14:59,每隔5分鐘
  相當于’*/5 14 * * ?’
  0-5 14 * * ?
  每天14:00到14:05,每隔1分鐘
  10,44 14 ? * 4
  每周三14:10和14:44
  15 10 15 * ?
  每月15日的10:15
  15 10 ? * 6L
  每月最后一個(gè)周日的10:15
  15 10 ? * 6#3
  每月第三個(gè)周日的10:15

無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 386 次瀏覽 ? 2020-08-20 23:19 ? 來(lái)自相關(guān)話(huà)題

  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件是一款針對B2B網(wǎng)站的企業(yè)信息進(jìn)行實(shí)時(shí)采集整理的軟件,支持定義多個(gè)條件采集數據,個(gè)性化的搜索方法使您采集的數據十分精準有效,采集的數據數組諸多,多種導入格式便捷您進(jìn)行數據管理,形成高效確切的顧客資源,讓您全面把握一手的市場(chǎng)顧客資料,是銷(xiāo)售人員開(kāi)發(fā)新顧客、企業(yè)進(jìn)行網(wǎng)路營(yíng)銷(xiāo)、開(kāi)拓市場(chǎng)查找顧客的必備神器!
  產(chǎn)品功能及特性:
  1、數據來(lái)自著(zhù)名在線(xiàn)B2B網(wǎng)站(阿里巴巴、慧聰、馬可波羅、環(huán)球貿易網(wǎng)、中國制造網(wǎng)等),來(lái)源權威、可靠、準確,讓您把握最準確的企業(yè)信息;
  2、軟件實(shí)時(shí)采集最新最活躍的信息,保證數據的時(shí)效性、有效性;
  3、多個(gè)條件精確定位準確度極高,只搜索您須要的數據名錄;
  4、搜索條件支持行業(yè)、二級行業(yè)、關(guān)鍵詞、經(jīng)營(yíng)模式、省份、城市、地區等條件搜索;
  5、數據字段齊全,收錄公司名稱(chēng)、聯(lián)系人、職務(wù)、電話(huà)、手機、郵箱、公司地址等大量數組;
  6、數據手動(dòng)除去重復,提高效率;
  7、導出格式支持txt記事本和excel表格,方便舉辦任何營(yíng)銷(xiāo)工作。
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  
  無(wú)敵企業(yè)名錄搜索軟件 B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5營(yíng)銷(xiāo)版' />
  下載 查看全部

  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件是一款針對B2B網(wǎng)站的企業(yè)信息進(jìn)行實(shí)時(shí)采集整理的軟件,支持定義多個(gè)條件采集數據,個(gè)性化的搜索方法使您采集的數據十分精準有效,采集的數據數組諸多,多種導入格式便捷您進(jìn)行數據管理,形成高效確切的顧客資源,讓您全面把握一手的市場(chǎng)顧客資料,是銷(xiāo)售人員開(kāi)發(fā)新顧客、企業(yè)進(jìn)行網(wǎng)路營(yíng)銷(xiāo)、開(kāi)拓市場(chǎng)查找顧客的必備神器!
  產(chǎn)品功能及特性:
  1、數據來(lái)自著(zhù)名在線(xiàn)B2B網(wǎng)站(阿里巴巴、慧聰、馬可波羅、環(huán)球貿易網(wǎng)、中國制造網(wǎng)等),來(lái)源權威、可靠、準確,讓您把握最準確的企業(yè)信息;
  2、軟件實(shí)時(shí)采集最新最活躍的信息,保證數據的時(shí)效性、有效性;
  3、多個(gè)條件精確定位準確度極高,只搜索您須要的數據名錄;
  4、搜索條件支持行業(yè)、二級行業(yè)、關(guān)鍵詞、經(jīng)營(yíng)模式、省份、城市、地區等條件搜索;
  5、數據字段齊全,收錄公司名稱(chēng)、聯(lián)系人、職務(wù)、電話(huà)、手機、郵箱、公司地址等大量數組;
  6、數據手動(dòng)除去重復,提高效率;
  7、導出格式支持txt記事本和excel表格,方便舉辦任何營(yíng)銷(xiāo)工作。
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  
  無(wú)敵企業(yè)名錄搜索軟件 B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5營(yíng)銷(xiāo)版' />
  下載

基于springboot的溫濕度NBIOT采集實(shí)時(shí)顯示

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 378 次瀏覽 ? 2020-08-17 19:53 ? 來(lái)自相關(guān)話(huà)題

  基于springboot的溫濕度NBIOT采集實(shí)時(shí)顯示
  這個(gè)項目就是之前說(shuō)的要開(kāi)源下來(lái)的一個(gè)結業(yè)項目,是我在學(xué)院期間做的一個(gè)項目,大家假如有須要可以隨便下載,開(kāi)源一起學(xué)習才有長(cháng)足的進(jìn)步
  項目鏈接:
  Gitee項目鏈接
  演示地址:
  演示地址
  :8080
  使用1234 123登錄
  底下是Readme.md
  springboot后臺聯(lián)接立秋云介紹
  后臺基于spring boot的簡(jiǎn)單實(shí)現,前端模板使用springboot官方的折線(xiàn)圖實(shí)現溫濕度的動(dòng)態(tài)監控,注意:需要配合硬件聯(lián)接立秋云實(shí)現
  軟件構架
  軟件構架說(shuō)明
  安裝教程安裝IDEA 配置java環(huán)境,這些就不用說(shuō)了。在IDEA中 導入項目 直接選擇下載好的文件夾即可等待IDEA手動(dòng)導出項目中的須要用到的依賴(lài)使用說(shuō)明
  項目需配置mysql數據庫,localhost:3306,數據庫名為login,賬戶(hù)為root,密碼為123456,可以在application.yml中配置數據源。
  當數據庫中有login數據庫時(shí)不需要再建表,后臺使用jpa框架會(huì )手動(dòng)創(chuàng )建須要用到的數據表,此項目會(huì )創(chuàng )建兩個(gè)表,一個(gè)拿來(lái)溫濕度儲存數據,一個(gè)拿來(lái)儲存用戶(hù)
  項目只需等待手動(dòng)導出依賴(lài)文件而且配置好數據庫后即可使用
  項目中的GuYuNbiot是聯(lián)接立秋云透傳平臺的,在Gylistener中請填入自己的春分的注冊包,谷雨云的使用請移步:%E8%B0%B7%E9%9B%A8%E4%BA%91%E9%80%8F%E4%BC%A0%E5%B9%B3%E5%8F%B0%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
  項目須要用到硬件的聯(lián)動(dòng),硬件發(fā)給谷雨云以后,通過(guò)春分云平臺的透傳能夠實(shí)現后端圖表的實(shí)時(shí)更新
  項目中有許多善待改進(jìn)的功能,比如在GyRecieveThread收到數據的數據庫插入時(shí),偶爾會(huì )報null,我這兒使用了
  @PostConstruct//解決非controller類(lèi)注入為null的問(wèn)題
public void init(){
gyRecieveThread=this;
gyRecieveThread.dataService=this.dataService;
}
  如果有更好的解決辦法,可以聯(lián)系我,多謝了。
  項目說(shuō)明
  1.因為本人處在大四結業(yè)階段,還是第一次學(xué)習springboot的緣由,項目中參考了網(wǎng)上的些許不錯的代碼,如有侵害請聯(lián)系我,我會(huì )立刻刪掉。
  2.項目是springboot比較簡(jiǎn)單的應用,歡迎和我一樣的初學(xué)者學(xué)習,如果有任何不懂的也可以聯(lián)系我,一起開(kāi)源學(xué)習交流就會(huì )長(cháng)久的進(jìn)步。
  參與貢獻Fork 本庫房新建 Feat_xxx 分支遞交代碼新建 Pull Request碼云特技使用 Readme_XXX.md 來(lái)支持不同的語(yǔ)言,例如 Readme_en.md, Readme_zh.md碼云官方博客 你可以 這個(gè)地址來(lái)了解碼云上的優(yōu)秀開(kāi)源項目GVP 全稱(chēng)是碼云最有價(jià)值開(kāi)源項目,是碼云綜合評定出的優(yōu)秀開(kāi)源項目碼云官方提供的使用指南 碼云封面人物是一檔拿來(lái)展示碼云會(huì )員風(fēng)采的欄目 查看全部

  基于springboot的溫濕度NBIOT采集實(shí)時(shí)顯示
  這個(gè)項目就是之前說(shuō)的要開(kāi)源下來(lái)的一個(gè)結業(yè)項目,是我在學(xué)院期間做的一個(gè)項目,大家假如有須要可以隨便下載,開(kāi)源一起學(xué)習才有長(cháng)足的進(jìn)步
  項目鏈接:
  Gitee項目鏈接
  演示地址:
  演示地址
  :8080
  使用1234 123登錄
  底下是Readme.md
  springboot后臺聯(lián)接立秋云介紹
  后臺基于spring boot的簡(jiǎn)單實(shí)現,前端模板使用springboot官方的折線(xiàn)圖實(shí)現溫濕度的動(dòng)態(tài)監控,注意:需要配合硬件聯(lián)接立秋云實(shí)現
  軟件構架
  軟件構架說(shuō)明
  安裝教程安裝IDEA 配置java環(huán)境,這些就不用說(shuō)了。在IDEA中 導入項目 直接選擇下載好的文件夾即可等待IDEA手動(dòng)導出項目中的須要用到的依賴(lài)使用說(shuō)明
  項目需配置mysql數據庫,localhost:3306,數據庫名為login,賬戶(hù)為root,密碼為123456,可以在application.yml中配置數據源。
  當數據庫中有login數據庫時(shí)不需要再建表,后臺使用jpa框架會(huì )手動(dòng)創(chuàng )建須要用到的數據表,此項目會(huì )創(chuàng )建兩個(gè)表,一個(gè)拿來(lái)溫濕度儲存數據,一個(gè)拿來(lái)儲存用戶(hù)
  項目只需等待手動(dòng)導出依賴(lài)文件而且配置好數據庫后即可使用
  項目中的GuYuNbiot是聯(lián)接立秋云透傳平臺的,在Gylistener中請填入自己的春分的注冊包,谷雨云的使用請移步:%E8%B0%B7%E9%9B%A8%E4%BA%91%E9%80%8F%E4%BC%A0%E5%B9%B3%E5%8F%B0%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
  項目須要用到硬件的聯(lián)動(dòng),硬件發(fā)給谷雨云以后,通過(guò)春分云平臺的透傳能夠實(shí)現后端圖表的實(shí)時(shí)更新
  項目中有許多善待改進(jìn)的功能,比如在GyRecieveThread收到數據的數據庫插入時(shí),偶爾會(huì )報null,我這兒使用了
  @PostConstruct//解決非controller類(lèi)注入為null的問(wèn)題
public void init(){
gyRecieveThread=this;
gyRecieveThread.dataService=this.dataService;
}
  如果有更好的解決辦法,可以聯(lián)系我,多謝了。
  項目說(shuō)明
  1.因為本人處在大四結業(yè)階段,還是第一次學(xué)習springboot的緣由,項目中參考了網(wǎng)上的些許不錯的代碼,如有侵害請聯(lián)系我,我會(huì )立刻刪掉。
  2.項目是springboot比較簡(jiǎn)單的應用,歡迎和我一樣的初學(xué)者學(xué)習,如果有任何不懂的也可以聯(lián)系我,一起開(kāi)源學(xué)習交流就會(huì )長(cháng)久的進(jìn)步。
  參與貢獻Fork 本庫房新建 Feat_xxx 分支遞交代碼新建 Pull Request碼云特技使用 Readme_XXX.md 來(lái)支持不同的語(yǔ)言,例如 Readme_en.md, Readme_zh.md碼云官方博客 你可以 這個(gè)地址來(lái)了解碼云上的優(yōu)秀開(kāi)源項目GVP 全稱(chēng)是碼云最有價(jià)值開(kāi)源項目,是碼云綜合評定出的優(yōu)秀開(kāi)源項目碼云官方提供的使用指南 碼云封面人物是一檔拿來(lái)展示碼云會(huì )員風(fēng)采的欄目

Python網(wǎng)路數據采集之讀取文件|第05天

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 320 次瀏覽 ? 2020-08-14 08:59 ? 來(lái)自相關(guān)話(huà)題

  User:你好我是森林
  Date:2018-04-01
  Mark:《Python網(wǎng)路數據采集》
  網(wǎng)絡(luò )采集系列文章
  Python網(wǎng)路數據采集之創(chuàng )建爬蟲(chóng)
  Python網(wǎng)路數據采集之HTML解析
  Python網(wǎng)路數據采集之開(kāi)始采集
  Python網(wǎng)路數據采集之使用API
  Python網(wǎng)路數據采集之儲存數據
  讀取文檔文檔編碼
  文檔編碼的方法一般可以依照文件的擴充名進(jìn)行判定,雖然文件擴充名并不是由編碼確定的,而是由開(kāi)發(fā)者確定的。從最底層的角度看,所有文檔都是由 0和 1 編碼而成的。例如我我們將一個(gè)后綴為png的圖片后綴改為.py。用編輯器打打開(kāi)就完全不對了。
  只要安裝了合適的庫, Python 就可以幫你處理任意類(lèi)型的文檔。純文本文件、視頻文件和圖象文件的惟一區別,就是它們的 0和1 面向用戶(hù)的轉換方法不同。
  純文本
  對于純文本的文件獲取的方法很簡(jiǎn)單,用 urlopen 獲取了網(wǎng)頁(yè)以后,我們會(huì )把它轉變成 BeautifulSoup對象。
  from urllib.request import urlopen
textPage = urlopen(
"http://www.pythonscraping.com/ ... 6quot;)
print(textPage.read())
  CSV 文件
  Python有一個(gè)標準庫對CSV文件的處理非常的友好,可以處理各種的CSV文件。文檔地址
  讀取CSV文件
  Python 的csv 庫主要是面向本地文件,就是說(shuō)你的 CSV 文件得存貯在你的筆記本上。而進(jìn)行網(wǎng)路數據采集的時(shí)侯,很多文件都是在線(xiàn)的。有幾個(gè)參考解決辦法:
  例如獲取網(wǎng)上的CSV文件,然后輸出命令行。
  from urllib.request import urlopen
from io import StringIO
import csv
data = urlopen("http://pythonscraping.com/file ... 6quot;).read().decode('ASCII','ignore')
dataFile = StringIO(data)
csvReader = csv.reader(dataFile)
for row in csvReader:
print(row)
  輸出的結果:
  ['Name', 'Year']
["Monty Python's Flying Circus", '1970']
['Another Monty Python Record', '1971']
["Monty Python's Previous Record", '1972']
['The Monty Python Matching Tie and Handkerchief', '1973']
['Monty Python Live at Drury Lane', '1974']
['An Album of the Soundtrack of the Trailer of the Film of Monty Python and the Holy Grail', '1975']
['Monty Python Live at City Center', '1977']
['The Monty Python Instant Record Collection', '1977']
["Monty Python's Life of Brian", '1979']
["Monty Python's Cotractual Obligation Album", '1980']
["Monty Python's The Meaning of Life", '1983']
['The Final Rip Off', '1987']
['Monty Python Sings', '1989']
['The Ultimate Monty Python Rip Off', '1994']
['Monty Python Sings Again', '2014']
  PDF 文件
  PDFMiner3K是一個(gè)非常好用的庫(是PDFMiner的Python 3.x移植版)。它十分靈活,可以通過(guò)命令行使用,也可以整合到代碼中。它還可以處理不同的語(yǔ)言編碼,而且對網(wǎng)路文件的處理也十分便捷。
  下載解壓后用python setup.py install完成安裝。
  模塊的源文件下載地址:
  例如可以把任意 PDF 讀成字符串,然后用 StringIO轉換成文件對象。
  from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(pdfFile):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdfFile)
device.close()
content = retstr.getvalue() retstr.close()
return content

pdfFile = urlopen("http://pythonscraping.com/page ... 6quot;)
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()
  readPDF 函數最大的用處是,如果PDF文件在筆記本里,就可以直接把 urlopen返回的對象 pdfFile 替換成普通的 open() 文件對象:
  pdfFile = open("./chapter1.pdf", 'rb')
  如果本文對你有所幫助,歡迎喜歡或則評論;如果你也對網(wǎng)路采集感興趣,可以點(diǎn)擊關(guān)注,這樣才能夠收到后續的更新。感謝您的閱讀。 查看全部

  User:你好我是森林
  Date:2018-04-01
  Mark:《Python網(wǎng)路數據采集
  網(wǎng)絡(luò )采集系列文章
  Python網(wǎng)路數據采集之創(chuàng )建爬蟲(chóng)
  Python網(wǎng)路數據采集之HTML解析
  Python網(wǎng)路數據采集之開(kāi)始采集
  Python網(wǎng)路數據采集之使用API
  Python網(wǎng)路數據采集之儲存數據
  讀取文檔文檔編碼
  文檔編碼的方法一般可以依照文件的擴充名進(jìn)行判定,雖然文件擴充名并不是由編碼確定的,而是由開(kāi)發(fā)者確定的。從最底層的角度看,所有文檔都是由 0和 1 編碼而成的。例如我我們將一個(gè)后綴為png的圖片后綴改為.py。用編輯器打打開(kāi)就完全不對了。
  只要安裝了合適的庫, Python 就可以幫你處理任意類(lèi)型的文檔。純文本文件、視頻文件和圖象文件的惟一區別,就是它們的 0和1 面向用戶(hù)的轉換方法不同。
  純文本
  對于純文本的文件獲取的方法很簡(jiǎn)單,用 urlopen 獲取了網(wǎng)頁(yè)以后,我們會(huì )把它轉變成 BeautifulSoup對象。
  from urllib.request import urlopen
textPage = urlopen(
"http://www.pythonscraping.com/ ... 6quot;)
print(textPage.read())
  CSV 文件
  Python有一個(gè)標準庫對CSV文件的處理非常的友好,可以處理各種的CSV文件。文檔地址
  讀取CSV文件
  Python 的csv 庫主要是面向本地文件,就是說(shuō)你的 CSV 文件得存貯在你的筆記本上。而進(jìn)行網(wǎng)路數據采集的時(shí)侯,很多文件都是在線(xiàn)的。有幾個(gè)參考解決辦法:
  例如獲取網(wǎng)上的CSV文件,然后輸出命令行。
  from urllib.request import urlopen
from io import StringIO
import csv
data = urlopen("http://pythonscraping.com/file ... 6quot;).read().decode('ASCII','ignore')
dataFile = StringIO(data)
csvReader = csv.reader(dataFile)
for row in csvReader:
print(row)
  輸出的結果:
  ['Name', 'Year']
["Monty Python's Flying Circus", '1970']
['Another Monty Python Record', '1971']
["Monty Python's Previous Record", '1972']
['The Monty Python Matching Tie and Handkerchief', '1973']
['Monty Python Live at Drury Lane', '1974']
['An Album of the Soundtrack of the Trailer of the Film of Monty Python and the Holy Grail', '1975']
['Monty Python Live at City Center', '1977']
['The Monty Python Instant Record Collection', '1977']
["Monty Python's Life of Brian", '1979']
["Monty Python's Cotractual Obligation Album", '1980']
["Monty Python's The Meaning of Life", '1983']
['The Final Rip Off', '1987']
['Monty Python Sings', '1989']
['The Ultimate Monty Python Rip Off', '1994']
['Monty Python Sings Again', '2014']
  PDF 文件
  PDFMiner3K是一個(gè)非常好用的庫(是PDFMiner的Python 3.x移植版)。它十分靈活,可以通過(guò)命令行使用,也可以整合到代碼中。它還可以處理不同的語(yǔ)言編碼,而且對網(wǎng)路文件的處理也十分便捷。
  下載解壓后用python setup.py install完成安裝。
  模塊的源文件下載地址:
  例如可以把任意 PDF 讀成字符串,然后用 StringIO轉換成文件對象。
  from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(pdfFile):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdfFile)
device.close()
content = retstr.getvalue() retstr.close()
return content

pdfFile = urlopen("http://pythonscraping.com/page ... 6quot;)
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()
  readPDF 函數最大的用處是,如果PDF文件在筆記本里,就可以直接把 urlopen返回的對象 pdfFile 替換成普通的 open() 文件對象:
  pdfFile = open("./chapter1.pdf", 'rb')
  如果本文對你有所幫助,歡迎喜歡或則評論;如果你也對網(wǎng)路采集感興趣,可以點(diǎn)擊關(guān)注,這樣才能夠收到后續的更新。感謝您的閱讀。

使用LogHub進(jìn)行日志實(shí)時(shí)采集-阿里云開(kāi)發(fā)者社區

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 372 次瀏覽 ? 2020-08-13 03:47 ? 來(lái)自相關(guān)話(huà)題

  背景
  “我要點(diǎn)訂餐“是一個(gè)平臺型電商網(wǎng)站,用戶(hù)、餐廳、配送員等。用戶(hù)可以在網(wǎng)頁(yè)、App、微信、支付寶等進(jìn)行下單點(diǎn)菜;商家領(lǐng)到訂單后開(kāi)始加工,并手動(dòng)通知周?chē)目爝f員;快遞員將訂餐送到用戶(hù)手中。
  
  運營(yíng)需求
  在營(yíng)運的過(guò)程中,發(fā)現了如下的問(wèn)題:
  獲取用戶(hù)難,投放一筆不小的廣告費對到渠道(網(wǎng)頁(yè)、微信推送),收貨了一些用戶(hù),但難以衡量各渠道的療效用戶(hù)時(shí)常埋怨送貨慢,但慢在哪些環(huán)節,接單、配送、加工?如何優(yōu)化?用戶(hù)營(yíng)運,經(jīng)常搞一些讓利活動(dòng)(發(fā)送優(yōu)惠券),但未能獲得療效調度問(wèn)題,如何幫助店家在高峰時(shí)提早備貨?如何調度更多的快遞員到指定區域?客服服務(wù),用戶(hù)反饋下單失敗,用戶(hù)背后的操作是哪些?系統是否有錯誤?數據采集難點(diǎn)
  在數據化營(yíng)運的過(guò)程中,第一步是怎樣將灑落日志數據集中搜集上去,其中會(huì )碰到如下挑戰:
  我們須要把飄散在外部、內部日志搜集上去,統一進(jìn)行管理。在過(guò)去這塊須要大量幾種工作,現在可以通過(guò)LogHub采集功能完成統一接入。
  
  日志統一管理、配置創(chuàng )建管理日志項目Project,例如叫myorder
  為不同數據源形成日志創(chuàng )建日志庫Logstore,例如:
  如須要對原創(chuàng )數據進(jìn)行清洗與ETL,可以創(chuàng )建一些中間結果logstore
 ?。ǜ嗖僮骺梢詤⒁?jiàn)快速開(kāi)始/管理控制臺)
  用戶(hù)推廣日志采集
  為獲取新用戶(hù),一般有2種形式:
  網(wǎng)站注冊時(shí)直接投放優(yōu)惠券
  其他渠道掃描二維碼,投放優(yōu)惠券
  做法
  定義如下注冊服務(wù)器地址,生成二維碼(傳單、網(wǎng)頁(yè))供用戶(hù)注冊?huà)呙?。用?hù)掃描該頁(yè)面注冊時(shí),就曉得用戶(hù)通過(guò)特定來(lái)源步入,并記錄日志。
  http://examplewebsite/login%3F ... Dkd4b
  當服務(wù)端接受懇求時(shí),服務(wù)器輸出如下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序輸出日志到硬碟,通過(guò)Logtail采集應用程序通過(guò)SDK寫(xiě)入,參見(jiàn)SDK服務(wù)端數據采集
  支付寶/微信公眾帳號編程是典型的Web端模式,一般會(huì )有三種類(lèi)型日志:
  做法日志講到本地文件,通過(guò)Logtail配置正則表達式講到指定LogstoreDocker中形成日志可以使用容器服務(wù)集成日志服務(wù)Java程序可以使用Log4J Appender日志不落盤(pán), LogHub Producer Library(客戶(hù)端高并發(fā)寫(xiě)入);Log4J AppenderC#、Python、Java、PHP、C等可以使用SDK寫(xiě)入Windows服務(wù)器可以使用Logstash采集終端用戶(hù)日志接入Web/M 站頁(yè)面用戶(hù)行為
  頁(yè)面用戶(hù)行為搜集可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器交互:例如下單,登陸、退出等。頁(yè)面無(wú)后臺服務(wù)器交互:請求直接在后端處理,例如滾屏,關(guān)閉頁(yè)面等。做法第一種可以參考服務(wù)端采集方法第二種可以使用Tracking Pixel/JS Library搜集頁(yè)面行為,參考Tracking Web插口服務(wù)器日志運維
  例如:
  做法不同網(wǎng)路環(huán)境下數據采集
  LogHub在各Region提供 訪(fǎng)問(wèn)點(diǎn),每個(gè)Region提供三種形式接入點(diǎn):
  更多請參見(jiàn)網(wǎng)路接入,總有一款適宜你。
  其他參見(jiàn)LogHub完整采集方式。參見(jiàn)日志實(shí)時(shí)消費,涉及流計算、數據清洗、數據庫房和索引查詢(xún)等功能。 查看全部

  背景
  “我要點(diǎn)訂餐“是一個(gè)平臺型電商網(wǎng)站,用戶(hù)、餐廳、配送員等。用戶(hù)可以在網(wǎng)頁(yè)、App、微信、支付寶等進(jìn)行下單點(diǎn)菜;商家領(lǐng)到訂單后開(kāi)始加工,并手動(dòng)通知周?chē)目爝f員;快遞員將訂餐送到用戶(hù)手中。
  
  運營(yíng)需求
  在營(yíng)運的過(guò)程中,發(fā)現了如下的問(wèn)題:
  獲取用戶(hù)難,投放一筆不小的廣告費對到渠道(網(wǎng)頁(yè)、微信推送),收貨了一些用戶(hù),但難以衡量各渠道的療效用戶(hù)時(shí)常埋怨送貨慢,但慢在哪些環(huán)節,接單、配送、加工?如何優(yōu)化?用戶(hù)營(yíng)運,經(jīng)常搞一些讓利活動(dòng)(發(fā)送優(yōu)惠券),但未能獲得療效調度問(wèn)題,如何幫助店家在高峰時(shí)提早備貨?如何調度更多的快遞員到指定區域?客服服務(wù),用戶(hù)反饋下單失敗,用戶(hù)背后的操作是哪些?系統是否有錯誤?數據采集難點(diǎn)
  在數據化營(yíng)運的過(guò)程中,第一步是怎樣將灑落日志數據集中搜集上去,其中會(huì )碰到如下挑戰:
  我們須要把飄散在外部、內部日志搜集上去,統一進(jìn)行管理。在過(guò)去這塊須要大量幾種工作,現在可以通過(guò)LogHub采集功能完成統一接入。
  
  日志統一管理、配置創(chuàng )建管理日志項目Project,例如叫myorder
  為不同數據源形成日志創(chuàng )建日志庫Logstore,例如:
  如須要對原創(chuàng )數據進(jìn)行清洗與ETL,可以創(chuàng )建一些中間結果logstore
 ?。ǜ嗖僮骺梢詤⒁?jiàn)快速開(kāi)始/管理控制臺)
  用戶(hù)推廣日志采集
  為獲取新用戶(hù),一般有2種形式:
  網(wǎng)站注冊時(shí)直接投放優(yōu)惠券
  其他渠道掃描二維碼,投放優(yōu)惠券
  做法
  定義如下注冊服務(wù)器地址,生成二維碼(傳單、網(wǎng)頁(yè))供用戶(hù)注冊?huà)呙?。用?hù)掃描該頁(yè)面注冊時(shí),就曉得用戶(hù)通過(guò)特定來(lái)源步入,并記錄日志。
  http://examplewebsite/login%3F ... Dkd4b
  當服務(wù)端接受懇求時(shí),服務(wù)器輸出如下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序輸出日志到硬碟,通過(guò)Logtail采集應用程序通過(guò)SDK寫(xiě)入,參見(jiàn)SDK服務(wù)端數據采集
  支付寶/微信公眾帳號編程是典型的Web端模式,一般會(huì )有三種類(lèi)型日志:
  做法日志講到本地文件,通過(guò)Logtail配置正則表達式講到指定LogstoreDocker中形成日志可以使用容器服務(wù)集成日志服務(wù)Java程序可以使用Log4J Appender日志不落盤(pán), LogHub Producer Library(客戶(hù)端高并發(fā)寫(xiě)入);Log4J AppenderC#、Python、Java、PHP、C等可以使用SDK寫(xiě)入Windows服務(wù)器可以使用Logstash采集終端用戶(hù)日志接入Web/M 站頁(yè)面用戶(hù)行為
  頁(yè)面用戶(hù)行為搜集可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器交互:例如下單,登陸、退出等。頁(yè)面無(wú)后臺服務(wù)器交互:請求直接在后端處理,例如滾屏,關(guān)閉頁(yè)面等。做法第一種可以參考服務(wù)端采集方法第二種可以使用Tracking Pixel/JS Library搜集頁(yè)面行為,參考Tracking Web插口服務(wù)器日志運維
  例如:
  做法不同網(wǎng)路環(huán)境下數據采集
  LogHub在各Region提供 訪(fǎng)問(wèn)點(diǎn),每個(gè)Region提供三種形式接入點(diǎn):
  更多請參見(jiàn)網(wǎng)路接入,總有一款適宜你。
  其他參見(jiàn)LogHub完整采集方式。參見(jiàn)日志實(shí)時(shí)消費,涉及流計算、數據清洗、數據庫房和索引查詢(xún)等功能。

實(shí)現并口數據的接收功能、以及繪圖工具進(jìn)行數據顯示

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 156 次瀏覽 ? 2020-08-11 12:58 ? 來(lái)自相關(guān)話(huà)題

  實(shí)現并口數據的接收功能、以及繪圖工具進(jìn)行數據顯示
  前言:這個(gè)小項目是自己的畢設,做的比較簡(jiǎn)單,之前記錄是pyqt的環(huán)境配置,說(shuō)實(shí)話(huà),今天忽然聽(tīng)到自己也都忘得差不多了,看來(lái)還是要好好記錄一下自己的知識。
  這個(gè)項目分為了兩個(gè)部份,其中下位機的數據采集是使用STM32L0系列的開(kāi)發(fā)板作為了主控器,溫度采集模塊是DB18B20,還有一個(gè)GSM模塊,用于發(fā)送郵件,比較簡(jiǎn)單的項目。上位機部份也就是使用pyserial模塊來(lái)進(jìn)行數據的接收,使用matplotlib模塊來(lái)進(jìn)行繪圖。
  下位機部份的代碼還在,但是用于時(shí)間關(guān)系,開(kāi)發(fā)板等東西已然送人了,所以這篇博客主要就講一下上位機的程序開(kāi)發(fā),但是為了和上一篇博客中實(shí)現的療效一樣,我去找到了一個(gè)軟件模擬下位機向PC端發(fā)送數據。
  1.模擬軟件向PC端發(fā)送數據–VSPD軟件
  找了一篇博客,收錄VSPD使用教程,放上鏈接如下:
  2.串口接收數據
  今天打算把之前的代碼用來(lái)跑一下,但是發(fā)覺(jué)出了一些小問(wèn)題,這里也記載一下,被自己蠢哭的問(wèn)題。
  問(wèn)題1:
  pyserial模塊的安裝問(wèn)題,換了環(huán)境,但是使用pip安裝,以及在pycharm中進(jìn)行安裝,都沒(méi)有成功,下載的包都是空的文件夾,其截圖如下:
  
  解決辦法,去官網(wǎng)下載壓縮包,然后解壓到你的類(lèi)庫的Lib/site-packages目錄下,然后運行命令進(jìn)行安裝;
  #files
  
  命令行安裝
  
  綜上問(wèn)題1解決
  問(wèn)題2(自己犯低級錯誤):
  
  a.串口初始化部份
  class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
### 1. 畫(huà)圖
self.my_graph_1 = MyMplCanvas()
self.left1.addWidget(self.my_graph_1)
self.t = [] ### 儲存計數
self.m = [] ### 儲存接收的數據
self.i = 0 ### 計數值
### 2. 串口部分
# 串口初始化為None
self.ser = None
# 設置窗口名稱(chēng)
self.setWindowTitle("Temperature--Serial")
# 刷新一下串口的列表
# self.refresh()
# 波特率
self.comboBox_2.addItem('115200')
self.comboBox_2.addItem('57600')
self.comboBox_2.addItem('9600')
self.comboBox_2.addItem('4800')
self.comboBox_2.addItem('2400')
self.comboBox_2.addItem('1200')
# 實(shí)例化一個(gè)定時(shí)器
self.timer = QTimer(self)
# 定時(shí)器調用讀取串口接收數據
self.timer.timeout.connect(self.recv)
# 打開(kāi)串口按鈕
self.pushButton.clicked.connect(self.open)
# 關(guān)閉串口
self.pushButton_2.clicked.connect(self.close)
# 波特率修改
self.comboBox_2.activated.connect(self.baud_modify)
# 串口號修改
self.comboBox.activated.connect(self.com_modify)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  b.數據接收及處理 查看全部

  實(shí)現并口數據的接收功能、以及繪圖工具進(jìn)行數據顯示
  前言:這個(gè)小項目是自己的畢設,做的比較簡(jiǎn)單,之前記錄是pyqt的環(huán)境配置,說(shuō)實(shí)話(huà),今天忽然聽(tīng)到自己也都忘得差不多了,看來(lái)還是要好好記錄一下自己的知識。
  這個(gè)項目分為了兩個(gè)部份,其中下位機的數據采集是使用STM32L0系列的開(kāi)發(fā)板作為了主控器,溫度采集模塊是DB18B20,還有一個(gè)GSM模塊,用于發(fā)送郵件,比較簡(jiǎn)單的項目。上位機部份也就是使用pyserial模塊來(lái)進(jìn)行數據的接收,使用matplotlib模塊來(lái)進(jìn)行繪圖。
  下位機部份的代碼還在,但是用于時(shí)間關(guān)系,開(kāi)發(fā)板等東西已然送人了,所以這篇博客主要就講一下上位機的程序開(kāi)發(fā),但是為了和上一篇博客中實(shí)現的療效一樣,我去找到了一個(gè)軟件模擬下位機向PC端發(fā)送數據。
  1.模擬軟件向PC端發(fā)送數據–VSPD軟件
  找了一篇博客,收錄VSPD使用教程,放上鏈接如下:
  2.串口接收數據
  今天打算把之前的代碼用來(lái)跑一下,但是發(fā)覺(jué)出了一些小問(wèn)題,這里也記載一下,被自己蠢哭的問(wèn)題。
  問(wèn)題1:
  pyserial模塊的安裝問(wèn)題,換了環(huán)境,但是使用pip安裝,以及在pycharm中進(jìn)行安裝,都沒(méi)有成功,下載的包都是空的文件夾,其截圖如下:
  
  解決辦法,去官網(wǎng)下載壓縮包,然后解壓到你的類(lèi)庫的Lib/site-packages目錄下,然后運行命令進(jìn)行安裝;
  #files
  
  命令行安裝
  
  綜上問(wèn)題1解決
  問(wèn)題2(自己犯低級錯誤):
  
  a.串口初始化部份
  class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
### 1. 畫(huà)圖
self.my_graph_1 = MyMplCanvas()
self.left1.addWidget(self.my_graph_1)
self.t = [] ### 儲存計數
self.m = [] ### 儲存接收的數據
self.i = 0 ### 計數值
### 2. 串口部分
# 串口初始化為None
self.ser = None
# 設置窗口名稱(chēng)
self.setWindowTitle("Temperature--Serial")
# 刷新一下串口的列表
# self.refresh()
# 波特率
self.comboBox_2.addItem('115200')
self.comboBox_2.addItem('57600')
self.comboBox_2.addItem('9600')
self.comboBox_2.addItem('4800')
self.comboBox_2.addItem('2400')
self.comboBox_2.addItem('1200')
# 實(shí)例化一個(gè)定時(shí)器
self.timer = QTimer(self)
# 定時(shí)器調用讀取串口接收數據
self.timer.timeout.connect(self.recv)
# 打開(kāi)串口按鈕
self.pushButton.clicked.connect(self.open)
# 關(guān)閉串口
self.pushButton_2.clicked.connect(self.close)
# 波特率修改
self.comboBox_2.activated.connect(self.baud_modify)
# 串口號修改
self.comboBox.activated.connect(self.com_modify)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  b.數據接收及處理

系列文章:Kubernetes日志采集最佳實(shí)踐

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 325 次瀏覽 ? 2020-08-09 16:03 ? 來(lái)自相關(guān)話(huà)題

  前言
  上一期主要介紹Kubernetes日志輸出的一些注意事項,日志輸出最終的目的還是做統一的采集和剖析。在Kubernetes中,日志采集和普通虛擬機的方法有很大不同,相對實(shí)現難度和布署代價(jià)也略大,但若使用恰當則比傳統方法自動(dòng)化程度更高、運維代價(jià)更低。
  Kubernetes日志采集難點(diǎn)
  在Kubernetes中,日志采集相比傳統虛擬機、物理機方法要復雜好多,最根本的緣由是Kubernetes把底層異常屏蔽,提供愈發(fā)細細度的資源調度,向上提供穩定、動(dòng)態(tài)的環(huán)境。因此日志采集面對的是愈發(fā)豐富、動(dòng)態(tài)的環(huán)境,需要考慮的點(diǎn)也愈發(fā)的多。
  例如:
  對于運行時(shí)間太短的Job類(lèi)應用,從啟動(dòng)到停止只有幾秒的時(shí)間,如何保證日志采集的實(shí)時(shí)性才能跟上并且數據不丟?K8s通常推薦使用大尺寸節點(diǎn),每個(gè)節點(diǎn)可以運行10-100+的容器,如何在資源消耗盡可能低的情況下采集100+的容器?在K8s中,應用都以yaml的形式布署,而日志采集還是以手工的配置文件方式為主,如何才能使日志采集以K8s的方法進(jìn)行布署?Kubernetes傳統方法
  日志種類(lèi)
  文件、stdout、宿主機文件、journal
  文件、journal
  日志源
  業(yè)務(wù)容器、系統組件、宿主機
  業(yè)務(wù)、宿主機
  采集方式
  Agent(Sidecar、DaemonSet)、直寫(xiě)(DockerEngine、業(yè)務(wù))
  Agent、直寫(xiě)
  單機應用數
  10-100
  1-10
  應用動(dòng)態(tài)性
  高
  低
  節點(diǎn)動(dòng)態(tài)性
  高
  低
  采集部署形式
  手動(dòng)、Yaml
  手動(dòng)、自定義
  采集方式:主動(dòng) or 被動(dòng)
  日志的采集方式分為被動(dòng)采集和主動(dòng)推送兩種,在K8s中,被動(dòng)采集一般分為Sidecar和DaemonSet兩種形式,主動(dòng)推送有DockerEngine推送和業(yè)務(wù)直寫(xiě)兩種形式。
  
  總結出來(lái):DockerEngine直寫(xiě)通常不推薦;業(yè)務(wù)直寫(xiě)推薦在日志量極大的場(chǎng)景中使用;DaemonSet通常在中小型集群中使用;Sidecar推薦在超大型的集群中使用。詳細的各類(lèi)采集方式對比如下:
  DockerEngine業(yè)務(wù)直寫(xiě)DaemonSet形式Sidecar形式
  采集日志類(lèi)型
  標準輸出
  業(yè)務(wù)日志
  標準輸出+部分文件
  文件
  部署運維
  低,原生支持
  低,只需維護好配置文件即可
  一般,需維護DaemonSet
  較高,每個(gè)須要采集日志的POD都須要布署sidecar容器
  日志分類(lèi)儲存
  無(wú)法實(shí)現
  業(yè)務(wù)獨立配置
  一般,可通過(guò)容器/路徑等映射
  每個(gè)POD可單獨配置,靈活性高
  多住戶(hù)隔離
  弱
  弱,日志直寫(xiě)會(huì )和業(yè)務(wù)邏輯競爭資源
  一般,只能通過(guò)配置間隔離
  強,通過(guò)容器進(jìn)行隔離,可單獨分配資源
  支持集群規模
  本地儲存無(wú)限制,若使用syslog、fluentd會(huì )有單點(diǎn)限制
  無(wú)限制
  取決于配置數
  無(wú)限制
  資源占用
  低,docker
  engine提供
  整體最低,省去采集開(kāi)銷(xiāo)
  較低,每個(gè)節點(diǎn)運行一個(gè)容器
  較高,每個(gè)POD運行一個(gè)容器
  查詢(xún)便捷性
  低,只能grep原創(chuàng )日志
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  較高,可進(jìn)行自定義的查詢(xún)、統計
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  可定制性
  低
  高,可自由擴充
  低
  高,每個(gè)POD單獨配置
  耦合度
  高,與DockerEngine強綁定,修改須要重啟DockerEngine
  高,采集模塊更改/升級須要重新發(fā)布業(yè)務(wù)
  低,Agent可獨立升級
  一般,默認采集Agent升級對應Sidecar業(yè)務(wù)也會(huì )重啟(有一些擴充包可以支持Sidecar熱升級)
  適用場(chǎng)景
  測試、POC等非生產(chǎn)場(chǎng)景
  對性能要求極高的場(chǎng)景
  日志分類(lèi)明晰、功能較單一的集群
  大型、混合型、PAAS型集群
  日志輸出:Stdout or 文件
  和虛擬機/物理機不同,K8s的容器提供標準輸出和文件兩種形式。在容器中,標準輸出將日志直接輸出到stdout或stderr,而DockerEngine接管stdout和stderr文件描述符,將日志接收后根據DockerEngine配置的LogDriver規則進(jìn)行處理;日志復印到文件的形式和虛擬機/物理機基本類(lèi)似,只是日志可以使用不同的儲存形式,例如默認儲存、EmptyDir、HostVolume、NFS等。
  雖然使用Stdout復印日志是Docker官方推薦的方法,但你們須要注意這個(gè)推薦是基于容器只作為簡(jiǎn)單應用的場(chǎng)景,實(shí)際的業(yè)務(wù)場(chǎng)景中我們還是建議你們盡可能使用文件的形式,主要的緣由有以下幾點(diǎn):
  Stdout性能問(wèn)題,從應用輸出stdout到服務(wù)端,中間會(huì )經(jīng)過(guò)好幾個(gè)流程(例如普遍使用的JSON LogDriver):應用stdout -> DockerEngine -> LogDriver -> 序列化成JSON -> 保存到文件 -> Agent采集文件 -> 解析JSON -> 上傳服務(wù)端。整個(gè)流程相比文件的額外開(kāi)支要多好多,在壓測時(shí),每秒10萬(wàn)行日志輸出都會(huì )額外占用DockerEngine 1個(gè)CPU核。Stdout不支持分類(lèi),即所有的輸出都混在一個(gè)流中,無(wú)法象文件一樣分類(lèi)輸出,通常一個(gè)應用中有AccessLog、ErrorLog、InterfaceLog(調用外部插口的日志)、TraceLog等,而這種日志的格式、用途不一,如果混在同一個(gè)流上將很難采集和剖析。Stdout只支持容器的主程序輸出,如果是daemon/fork形式運行的程序將難以使用stdout。文件的Dump形式支持各類(lèi)策略,例如同步/異步寫(xiě)入、緩存大小、文件輪轉策略、壓縮策略、清除策略等,相對愈發(fā)靈活。
  因此我們建議線(xiàn)上應用使用文件的形式輸出日志,Stdout只在功能單一的應用或一些K8s系統/運維組件中使用。
  CICD集成:Logging Operator
  
  Kubernetes提供了標準化的業(yè)務(wù)布署形式,可以通過(guò)yaml(K8s API)來(lái)申明路由規則、暴露服務(wù)、掛載儲存、運行業(yè)務(wù)、定義縮擴容規則等,所以Kubernetes很容易和CICD系統集成。而日志采集也是運維監控過(guò)程中的重要部份,業(yè)務(wù)上線(xiàn)后的所有日志都要進(jìn)行實(shí)時(shí)的搜集。
  原創(chuàng )的形式是在發(fā)布以后自動(dòng)去布署日志采集的邏輯,這種方法須要手工干預,違背CICD自動(dòng)化的宗旨;為了實(shí)現自動(dòng)化,有人開(kāi)始基于日志采集的API/SDK包裝一個(gè)手動(dòng)布署的服務(wù),在發(fā)布后通過(guò)CICD的webhook觸發(fā)調用,但這些方法的開(kāi)發(fā)代價(jià)很高。
  在Kubernetes中,日志最標準的集成方法是以一個(gè)新資源注冊到Kubernetes系統中,以Operator(CRD)的形式來(lái)進(jìn)行管理和維護。在這些形式下,CICD系統不需要額外的開(kāi)發(fā),只需在布署到Kubernetes系統時(shí)附加上日志相關(guān)的配置即可實(shí)現。
  Kubernetes日志采集方案
  
  早在Kubernetes出現之前,我們就開(kāi)始為容器環(huán)境開(kāi)發(fā)日志采集方案,隨著(zhù)K8s的逐步穩定,我們開(kāi)始將好多業(yè)務(wù)遷移到K8s平臺上,因此也基于之前的基礎專(zhuān)門(mén)開(kāi)發(fā)了一套K8s上的日志采集方案。主要具備的功能有:
  支持各種數據的實(shí)時(shí)采集,包括容器文件、容器Stdout、宿主機文件、Journal、Event等;支持多種采集部署方法,包括DaemonSet、Sidecar、DockerEngine LogDriver等;支持對日志數據進(jìn)行富化,包括附加Namespace、Pod、Container、Image、Node等信息;穩定、高可靠,基于阿里自研的Logtail采集Agent實(shí)現,目前全網(wǎng)已有幾百萬(wàn)的布署實(shí)例;基于CRD進(jìn)行擴充,可使用Kubernetes布署發(fā)布的形式來(lái)布署日志采集規則,與CICD完美集成。安裝日志采集組件
  目前這套采集方案早已對外開(kāi)放,我們提供了一個(gè)Helm安裝包,其中包括Logtail的DaemonSet、AliyunlogConfig的CRD申明以及CRD Controller,安裝以后才能直接使用DaemonS優(yōu)采云采集器以及CRD配置了。安裝方法如下:
  阿里云Kubernetes集群在開(kāi)通的時(shí)侯可以勾選安裝,這樣在集群創(chuàng )建的時(shí)侯會(huì )手動(dòng)安裝上述組件。如果開(kāi)通的時(shí)侯沒(méi)有安裝,則可以自動(dòng)安裝。如果是自建的Kubernetes,無(wú)論是在阿里云上自建還是在其他云或則是線(xiàn)下,也可以使用這樣采集方案,具體安裝方法參考[自建Kubernetes安裝]()。
  安裝好上述組件然后,Logtail和對應的Controller都會(huì )運行在集群中,但默認這種組件并不會(huì )采集任何日志,需要配置日志采集規則來(lái)采集指定Pod的各種日志。
  采集規則配置:環(huán)境變量 or CRD
  除了在日志服務(wù)控制臺上自動(dòng)配置之外,對于Kubernetes還額外支持兩種配置方法:環(huán)境變量和CRD。
  環(huán)境變量是自swarm時(shí)代仍然使用的配置方法,只須要在想要采集的容器環(huán)境變量上申明須要采集的數據地址即可,Logtail會(huì )手動(dòng)將這種數據采集到服務(wù)端。這種方法布署簡(jiǎn)單,學(xué)習成本低,很容易上手;但才能支持的配置規則極少,很多中級配置(例如解析方法、過(guò)濾方法、黑白名單等)都不支持,而且這些申明的方法不支持更改/刪除,每次更改雖然都是創(chuàng )建1個(gè)新的采集配置,歷史的采集配置須要自動(dòng)清除,否則會(huì )導致資源浪費。
  
  CRD配置方法是特別符合Kubernetes官方推薦的標準擴充方法,讓采集配置以K8s資源的方法進(jìn)行管理,通過(guò)向Kubernetes部署AliyunLogConfig這個(gè)特殊的CRD資源來(lái)申明須要采集的數據。例如下邊的示例就是布署一個(gè)容器標準輸出的采集,其中定義須要Stdout和Stderr都采集,并且排除環(huán)境變量中收錄COLLEXT_STDOUT_FLAG:false的容器。
  基于CRD的配置方法以Kubernetes標準擴充資源的方法進(jìn)行管理,支持配置的增刪改查完整語(yǔ)義,而且支持各類(lèi)中級配置,是我們非常推薦的采集配置方法。
  
  采集規則推薦的配置形式
  
  實(shí)際應用場(chǎng)景中,一般都是使用DaemonSet或DaemonSet與Sidecar混用形式,DaemonSet的優(yōu)勢是資源利用率高,但有一個(gè)問(wèn)題是DaemonSet的所有Logtail都共享全局配置,而單一的Logtail有配置支撐的上限,因此難以支撐應用數比較多的集群。
  上述是我們給出的推薦配置形式,核心的思想是:
  一個(gè)配置盡可能多的采集同類(lèi)數據,減少配置數,降低DaemonSet壓力;核心的應用采集要給以充分的資源,可以使用Sidecar形式;配置方法盡可能使用CRD形式;Sidecar因為每位Logtail是單獨的配置,所以沒(méi)有配置數的限制,這種比較適宜于超小型的集群使用。
  實(shí)踐1-中小型集群
  
  絕大部分Kubernetes集群都屬于中小型的,對于中小型沒(méi)有明晰的定義,一般應用數在500以?xún)?,節點(diǎn)規模1000以?xún)?,沒(méi)有職能明晰的Kubernetes平臺運維。這種場(chǎng)景應用數不會(huì )非常多,DaemonSet可以支撐所有的采集配置:
  絕大部分業(yè)務(wù)應用的數據使用DaemonS優(yōu)采云采集器形式核心應用(對于采集可靠性要求比較高,例如訂單/交易系統)使用Sidecar形式單獨采集
  實(shí)踐2-大型集群
  
  對于一些用作PAAS平臺的小型/超大型集群,一般業(yè)務(wù)在1000以上,節點(diǎn)規模也在1000以上,有專(zhuān)門(mén)的Kubernetes平臺運維人員。這種場(chǎng)景下應用數沒(méi)有限制,DaemonSet難以支持,因此必須使用Sidecar形式,整體規劃如下:
  Kubernetes平臺本身的系統組件日志、內核日志相對種類(lèi)固定,這部份日志使用DaemonS優(yōu)采云采集器,主要為平臺的運維人員提供服務(wù);各個(gè)業(yè)務(wù)的日志使用Sidecar形式采集,每個(gè)業(yè)務(wù)可以獨立設置Sidecar的采集目的地址,為業(yè)務(wù)的DevOps人員提供足夠的靈活性。
  原文鏈接 查看全部

  前言
  上一期主要介紹Kubernetes日志輸出的一些注意事項,日志輸出最終的目的還是做統一的采集和剖析。在Kubernetes中,日志采集和普通虛擬機的方法有很大不同,相對實(shí)現難度和布署代價(jià)也略大,但若使用恰當則比傳統方法自動(dòng)化程度更高、運維代價(jià)更低。
  Kubernetes日志采集難點(diǎn)
  在Kubernetes中,日志采集相比傳統虛擬機、物理機方法要復雜好多,最根本的緣由是Kubernetes把底層異常屏蔽,提供愈發(fā)細細度的資源調度,向上提供穩定、動(dòng)態(tài)的環(huán)境。因此日志采集面對的是愈發(fā)豐富、動(dòng)態(tài)的環(huán)境,需要考慮的點(diǎn)也愈發(fā)的多。
  例如:
  對于運行時(shí)間太短的Job類(lèi)應用,從啟動(dòng)到停止只有幾秒的時(shí)間,如何保證日志采集的實(shí)時(shí)性才能跟上并且數據不丟?K8s通常推薦使用大尺寸節點(diǎn),每個(gè)節點(diǎn)可以運行10-100+的容器,如何在資源消耗盡可能低的情況下采集100+的容器?在K8s中,應用都以yaml的形式布署,而日志采集還是以手工的配置文件方式為主,如何才能使日志采集以K8s的方法進(jìn)行布署?Kubernetes傳統方法
  日志種類(lèi)
  文件、stdout、宿主機文件、journal
  文件、journal
  日志源
  業(yè)務(wù)容器、系統組件、宿主機
  業(yè)務(wù)、宿主機
  采集方式
  Agent(Sidecar、DaemonSet)、直寫(xiě)(DockerEngine、業(yè)務(wù))
  Agent、直寫(xiě)
  單機應用數
  10-100
  1-10
  應用動(dòng)態(tài)性
  高
  低
  節點(diǎn)動(dòng)態(tài)性
  高
  低
  采集部署形式
  手動(dòng)、Yaml
  手動(dòng)、自定義
  采集方式:主動(dòng) or 被動(dòng)
  日志的采集方式分為被動(dòng)采集和主動(dòng)推送兩種,在K8s中,被動(dòng)采集一般分為Sidecar和DaemonSet兩種形式,主動(dòng)推送有DockerEngine推送和業(yè)務(wù)直寫(xiě)兩種形式。
  
  總結出來(lái):DockerEngine直寫(xiě)通常不推薦;業(yè)務(wù)直寫(xiě)推薦在日志量極大的場(chǎng)景中使用;DaemonSet通常在中小型集群中使用;Sidecar推薦在超大型的集群中使用。詳細的各類(lèi)采集方式對比如下:
  DockerEngine業(yè)務(wù)直寫(xiě)DaemonSet形式Sidecar形式
  采集日志類(lèi)型
  標準輸出
  業(yè)務(wù)日志
  標準輸出+部分文件
  文件
  部署運維
  低,原生支持
  低,只需維護好配置文件即可
  一般,需維護DaemonSet
  較高,每個(gè)須要采集日志的POD都須要布署sidecar容器
  日志分類(lèi)儲存
  無(wú)法實(shí)現
  業(yè)務(wù)獨立配置
  一般,可通過(guò)容器/路徑等映射
  每個(gè)POD可單獨配置,靈活性高
  多住戶(hù)隔離
  弱
  弱,日志直寫(xiě)會(huì )和業(yè)務(wù)邏輯競爭資源
  一般,只能通過(guò)配置間隔離
  強,通過(guò)容器進(jìn)行隔離,可單獨分配資源
  支持集群規模
  本地儲存無(wú)限制,若使用syslog、fluentd會(huì )有單點(diǎn)限制
  無(wú)限制
  取決于配置數
  無(wú)限制
  資源占用
  低,docker
  engine提供
  整體最低,省去采集開(kāi)銷(xiāo)
  較低,每個(gè)節點(diǎn)運行一個(gè)容器
  較高,每個(gè)POD運行一個(gè)容器
  查詢(xún)便捷性
  低,只能grep原創(chuàng )日志
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  較高,可進(jìn)行自定義的查詢(xún)、統計
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  可定制性
  低
  高,可自由擴充
  低
  高,每個(gè)POD單獨配置
  耦合度
  高,與DockerEngine強綁定,修改須要重啟DockerEngine
  高,采集模塊更改/升級須要重新發(fā)布業(yè)務(wù)
  低,Agent可獨立升級
  一般,默認采集Agent升級對應Sidecar業(yè)務(wù)也會(huì )重啟(有一些擴充包可以支持Sidecar熱升級)
  適用場(chǎng)景
  測試、POC等非生產(chǎn)場(chǎng)景
  對性能要求極高的場(chǎng)景
  日志分類(lèi)明晰、功能較單一的集群
  大型、混合型、PAAS型集群
  日志輸出:Stdout or 文件
  和虛擬機/物理機不同,K8s的容器提供標準輸出和文件兩種形式。在容器中,標準輸出將日志直接輸出到stdout或stderr,而DockerEngine接管stdout和stderr文件描述符,將日志接收后根據DockerEngine配置的LogDriver規則進(jìn)行處理;日志復印到文件的形式和虛擬機/物理機基本類(lèi)似,只是日志可以使用不同的儲存形式,例如默認儲存、EmptyDir、HostVolume、NFS等。
  雖然使用Stdout復印日志是Docker官方推薦的方法,但你們須要注意這個(gè)推薦是基于容器只作為簡(jiǎn)單應用的場(chǎng)景,實(shí)際的業(yè)務(wù)場(chǎng)景中我們還是建議你們盡可能使用文件的形式,主要的緣由有以下幾點(diǎn):
  Stdout性能問(wèn)題,從應用輸出stdout到服務(wù)端,中間會(huì )經(jīng)過(guò)好幾個(gè)流程(例如普遍使用的JSON LogDriver):應用stdout -> DockerEngine -> LogDriver -> 序列化成JSON -> 保存到文件 -> Agent采集文件 -> 解析JSON -> 上傳服務(wù)端。整個(gè)流程相比文件的額外開(kāi)支要多好多,在壓測時(shí),每秒10萬(wàn)行日志輸出都會(huì )額外占用DockerEngine 1個(gè)CPU核。Stdout不支持分類(lèi),即所有的輸出都混在一個(gè)流中,無(wú)法象文件一樣分類(lèi)輸出,通常一個(gè)應用中有AccessLog、ErrorLog、InterfaceLog(調用外部插口的日志)、TraceLog等,而這種日志的格式、用途不一,如果混在同一個(gè)流上將很難采集和剖析。Stdout只支持容器的主程序輸出,如果是daemon/fork形式運行的程序將難以使用stdout。文件的Dump形式支持各類(lèi)策略,例如同步/異步寫(xiě)入、緩存大小、文件輪轉策略、壓縮策略、清除策略等,相對愈發(fā)靈活。
  因此我們建議線(xiàn)上應用使用文件的形式輸出日志,Stdout只在功能單一的應用或一些K8s系統/運維組件中使用。
  CICD集成:Logging Operator
  
  Kubernetes提供了標準化的業(yè)務(wù)布署形式,可以通過(guò)yaml(K8s API)來(lái)申明路由規則、暴露服務(wù)、掛載儲存、運行業(yè)務(wù)、定義縮擴容規則等,所以Kubernetes很容易和CICD系統集成。而日志采集也是運維監控過(guò)程中的重要部份,業(yè)務(wù)上線(xiàn)后的所有日志都要進(jìn)行實(shí)時(shí)的搜集。
  原創(chuàng )的形式是在發(fā)布以后自動(dòng)去布署日志采集的邏輯,這種方法須要手工干預,違背CICD自動(dòng)化的宗旨;為了實(shí)現自動(dòng)化,有人開(kāi)始基于日志采集的API/SDK包裝一個(gè)手動(dòng)布署的服務(wù),在發(fā)布后通過(guò)CICD的webhook觸發(fā)調用,但這些方法的開(kāi)發(fā)代價(jià)很高。
  在Kubernetes中,日志最標準的集成方法是以一個(gè)新資源注冊到Kubernetes系統中,以Operator(CRD)的形式來(lái)進(jìn)行管理和維護。在這些形式下,CICD系統不需要額外的開(kāi)發(fā),只需在布署到Kubernetes系統時(shí)附加上日志相關(guān)的配置即可實(shí)現。
  Kubernetes日志采集方案
  
  早在Kubernetes出現之前,我們就開(kāi)始為容器環(huán)境開(kāi)發(fā)日志采集方案,隨著(zhù)K8s的逐步穩定,我們開(kāi)始將好多業(yè)務(wù)遷移到K8s平臺上,因此也基于之前的基礎專(zhuān)門(mén)開(kāi)發(fā)了一套K8s上的日志采集方案。主要具備的功能有:
  支持各種數據的實(shí)時(shí)采集,包括容器文件、容器Stdout、宿主機文件、Journal、Event等;支持多種采集部署方法,包括DaemonSet、Sidecar、DockerEngine LogDriver等;支持對日志數據進(jìn)行富化,包括附加Namespace、Pod、Container、Image、Node等信息;穩定、高可靠,基于阿里自研的Logtail采集Agent實(shí)現,目前全網(wǎng)已有幾百萬(wàn)的布署實(shí)例;基于CRD進(jìn)行擴充,可使用Kubernetes布署發(fā)布的形式來(lái)布署日志采集規則,與CICD完美集成。安裝日志采集組件
  目前這套采集方案早已對外開(kāi)放,我們提供了一個(gè)Helm安裝包,其中包括Logtail的DaemonSet、AliyunlogConfig的CRD申明以及CRD Controller,安裝以后才能直接使用DaemonS優(yōu)采云采集器以及CRD配置了。安裝方法如下:
  阿里云Kubernetes集群在開(kāi)通的時(shí)侯可以勾選安裝,這樣在集群創(chuàng )建的時(shí)侯會(huì )手動(dòng)安裝上述組件。如果開(kāi)通的時(shí)侯沒(méi)有安裝,則可以自動(dòng)安裝。如果是自建的Kubernetes,無(wú)論是在阿里云上自建還是在其他云或則是線(xiàn)下,也可以使用這樣采集方案,具體安裝方法參考[自建Kubernetes安裝]()。
  安裝好上述組件然后,Logtail和對應的Controller都會(huì )運行在集群中,但默認這種組件并不會(huì )采集任何日志,需要配置日志采集規則來(lái)采集指定Pod的各種日志。
  采集規則配置:環(huán)境變量 or CRD
  除了在日志服務(wù)控制臺上自動(dòng)配置之外,對于Kubernetes還額外支持兩種配置方法:環(huán)境變量和CRD。
  環(huán)境變量是自swarm時(shí)代仍然使用的配置方法,只須要在想要采集的容器環(huán)境變量上申明須要采集的數據地址即可,Logtail會(huì )手動(dòng)將這種數據采集到服務(wù)端。這種方法布署簡(jiǎn)單,學(xué)習成本低,很容易上手;但才能支持的配置規則極少,很多中級配置(例如解析方法、過(guò)濾方法、黑白名單等)都不支持,而且這些申明的方法不支持更改/刪除,每次更改雖然都是創(chuàng )建1個(gè)新的采集配置,歷史的采集配置須要自動(dòng)清除,否則會(huì )導致資源浪費。
  
  CRD配置方法是特別符合Kubernetes官方推薦的標準擴充方法,讓采集配置以K8s資源的方法進(jìn)行管理,通過(guò)向Kubernetes部署AliyunLogConfig這個(gè)特殊的CRD資源來(lái)申明須要采集的數據。例如下邊的示例就是布署一個(gè)容器標準輸出的采集,其中定義須要Stdout和Stderr都采集,并且排除環(huán)境變量中收錄COLLEXT_STDOUT_FLAG:false的容器。
  基于CRD的配置方法以Kubernetes標準擴充資源的方法進(jìn)行管理,支持配置的增刪改查完整語(yǔ)義,而且支持各類(lèi)中級配置,是我們非常推薦的采集配置方法。
  
  采集規則推薦的配置形式
  
  實(shí)際應用場(chǎng)景中,一般都是使用DaemonSet或DaemonSet與Sidecar混用形式,DaemonSet的優(yōu)勢是資源利用率高,但有一個(gè)問(wèn)題是DaemonSet的所有Logtail都共享全局配置,而單一的Logtail有配置支撐的上限,因此難以支撐應用數比較多的集群。
  上述是我們給出的推薦配置形式,核心的思想是:
  一個(gè)配置盡可能多的采集同類(lèi)數據,減少配置數,降低DaemonSet壓力;核心的應用采集要給以充分的資源,可以使用Sidecar形式;配置方法盡可能使用CRD形式;Sidecar因為每位Logtail是單獨的配置,所以沒(méi)有配置數的限制,這種比較適宜于超小型的集群使用。
  實(shí)踐1-中小型集群
  
  絕大部分Kubernetes集群都屬于中小型的,對于中小型沒(méi)有明晰的定義,一般應用數在500以?xún)?,節點(diǎn)規模1000以?xún)?,沒(méi)有職能明晰的Kubernetes平臺運維。這種場(chǎng)景應用數不會(huì )非常多,DaemonSet可以支撐所有的采集配置:
  絕大部分業(yè)務(wù)應用的數據使用DaemonS優(yōu)采云采集器形式核心應用(對于采集可靠性要求比較高,例如訂單/交易系統)使用Sidecar形式單獨采集
  實(shí)踐2-大型集群
  
  對于一些用作PAAS平臺的小型/超大型集群,一般業(yè)務(wù)在1000以上,節點(diǎn)規模也在1000以上,有專(zhuān)門(mén)的Kubernetes平臺運維人員。這種場(chǎng)景下應用數沒(méi)有限制,DaemonSet難以支持,因此必須使用Sidecar形式,整體規劃如下:
  Kubernetes平臺本身的系統組件日志、內核日志相對種類(lèi)固定,這部份日志使用DaemonS優(yōu)采云采集器,主要為平臺的運維人員提供服務(wù);各個(gè)業(yè)務(wù)的日志使用Sidecar形式采集,每個(gè)業(yè)務(wù)可以獨立設置Sidecar的采集目的地址,為業(yè)務(wù)的DevOps人員提供足夠的靈活性。
  原文鏈接

一種基于分布式的輿情數據實(shí)時(shí)采集方法和系統技術(shù)方案

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 362 次瀏覽 ? 2020-08-09 15:04 ? 來(lái)自相關(guān)話(huà)題

  本發(fā)明專(zhuān)利技術(shù)公開(kāi)了一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,方法包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)并定義爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取數據;S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。本發(fā)明專(zhuān)利技術(shù)構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例,將瀏覽器訪(fǎng)問(wèn)、日志生成、數據封裝、代理設置以及隊列設置等系統核心功能封裝上去,增強系統的可擴展性和可移植性,提高代碼的可重用性和系統的可維護性。
  
  全部詳盡技術(shù)資料下載
  【技術(shù)實(shí)現步驟摘要】
  本專(zhuān)利技術(shù)涉及互聯(lián)網(wǎng)輿情數據的分布式高并發(fā)采集方法及系統,特別的涉及目標數據的高效、實(shí)時(shí)采集技術(shù)實(shí)現方式及系統,尤其涉及一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統。
  技術(shù)介紹
  輿情是在一定的社會(huì )空間內,圍繞中介性社會(huì )風(fēng)波的發(fā)生、發(fā)展和變化,民眾對社會(huì )管理者形成和持有的社會(huì )政治心態(tài)。目前,網(wǎng)絡(luò )成為反映社會(huì )輿情的主要載體之一,在輿情傳播中起著(zhù)重要的作用。而輿論危機的爆發(fā)使越來(lái)越多的人關(guān)注社會(huì )輿論的形成和發(fā)展。各級黨政機關(guān)要及時(shí)了解信息,加強輿情監控,提高輿情應對能力和在新輿論環(huán)境中的執政能力,及時(shí)化解矛盾,處理好政府和民眾的關(guān)系。企事業(yè)單位也須要關(guān)注網(wǎng)路輿情,利用市場(chǎng)已有的輿情剖析系統和服務(wù)平臺,或者人員與工具結合,掌控網(wǎng)絡(luò )輿情,輔助決策。如何從大量的網(wǎng)路數據中提取出關(guān)鍵信息,是當前技術(shù)研究的一個(gè)重點(diǎn)。傳統的通用搜索引擎作為一個(gè)輔助檢索信息的工具,成為用戶(hù)訪(fǎng)問(wèn)網(wǎng)路的入口和手冊。但是,這些通用的搜索引擎也存在著(zhù)一定的局限性,1、通用搜索引擎所返回的結果收錄大量用戶(hù)不關(guān)心的網(wǎng)頁(yè)。通用搜索引擎常常對信息濃度密集且具有一定結構的數據無(wú)能為力,不能挺好地發(fā)覺(jué)和獲取關(guān)鍵信息。2、簡(jiǎn)單的基于互聯(lián)網(wǎng)的數據采集系統,其采集方式單一,無(wú)法同時(shí)多任務(wù)執行,這就造成了數據的采集效率較低,無(wú)法滿(mǎn)足數據的實(shí)時(shí)性。3、目前的其他輿情剖析監測系統,輿情數據大部分采用離線(xiàn)處理機制,在結構上就造成了其數據必然存在一定的信噪比。而隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息更新的速率越來(lái)越快,低信噪比的輿情數據采集系統成為輿情剖析項目的急切需求。
  技術(shù)實(shí)現思路
  本專(zhuān)利技術(shù)的目的在于克服現有技術(shù)的不足,提供一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,爬取的數據可生成在線(xiàn)輿情大數據庫,為相關(guān)政府及企業(yè)用戶(hù)提供在線(xiàn)數據庫服務(wù)。本專(zhuān)利技術(shù)的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現的:一種基于分布式的輿情數據實(shí)時(shí)采集方法,它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。頁(yè)面數據分為靜態(tài)數據和動(dòng)態(tài)數據;對于靜態(tài)頁(yè)面數據,爬蟲(chóng)調用模擬瀏覽器訪(fǎng)問(wèn)方式頁(yè)面地址獲取網(wǎng)頁(yè)源數據;對于動(dòng)態(tài)數據,爬蟲(chóng)在訪(fǎng)問(wèn)頁(yè)面之前,需要通過(guò)抓包的方法找到動(dòng)態(tài)數據返回鏈接,再調用瀏覽器訪(fǎng)問(wèn)方式獲取頁(yè)面數據。將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行數據爬取,直到獲取到正文URL地址;消費者負責從正文地址隊列中取出URL數據,訪(fǎng)問(wèn)頁(yè)面獲取正文頁(yè)面內容;在此過(guò)程中,生產(chǎn)者和消費者彼此之間通過(guò)阻塞隊列來(lái)進(jìn)行通信;采用隊列設置模塊提供隊列的存取操作,并初始化隊列數據庫并完善聯(lián)接。
  所述的步驟S3包括對動(dòng)態(tài)網(wǎng)頁(yè)數據的剖析和對靜態(tài)頁(yè)面數據的剖析,其中對于靜態(tài)頁(yè)面數據使用封裝好的Xpath方式,給定數據項的路徑地址即可獲取到對應數據項;同時(shí)結合正則表達式,通過(guò)正則表達式過(guò)濾篩選數據,補充獲取XPath未能解析到的數據;系統將解析到的數據形參給事前定義好的對應的數據項;對于動(dòng)態(tài)網(wǎng)頁(yè)數據,使用JSON方式獲取字典格式的動(dòng)態(tài)網(wǎng)頁(yè)數據項。所述的步驟S4步驟包括:在數據采集之前,采用鞋廠(chǎng)設計模式,將每一類(lèi)網(wǎng)站定義好的數據項以及保留數組封裝成字典格式,并提供統一的數據插口;在數據采集完成后,根據數據源網(wǎng)站類(lèi)別,系統調用對應的封裝方式將采集到的數據封裝為對應類(lèi)的統一格式;在封裝過(guò)程中使用UUID方式為每條數據生成惟一的標識符,方便后續的檢索操作。所述的步驟S5包括:采用鞋廠(chǎng)設計模式將結果數據的儲存操作封裝為隊列方式,采集到數據然后調用隊列方式將數據輸入數據庫服務(wù)器;在數據庫服務(wù)器中分別為每一類(lèi)源數據網(wǎng)站設置對應的數據庫,在數據儲存時(shí)將數據存到對應的數據庫;根據保存數據的不同采取不同的數據庫,保存生產(chǎn)者和消費者之間的URL隊列數據。所述的步驟S6包括:采用鞋廠(chǎng)模式將日志方式封裝上去,提供統一的插口訪(fǎng)問(wèn);日志采用logging模塊給運行中的程序提供了一個(gè)標準的信息輸出插口;系統開(kāi)始運行的時(shí)侯即調用日志插口生成實(shí)例,在整個(gè)過(guò)程中記錄每位模塊的運行狀態(tài)與結果;在每一輪爬蟲(chóng)程序執行完成時(shí),將檢測結果按天生成日志文件。
  采用所述的方式的系統,所述的系統包括:數據打算模塊,用于完成源站的分類(lèi)以及目標數據項定義;更新檢測模塊,用于檢測目標數據網(wǎng)站的更新情況。數據爬取模塊,用于模擬瀏覽器環(huán)境訪(fǎng)問(wèn)源站目標頁(yè)面并將頁(yè)面數據獲取到本地;代理設置模塊,用于手動(dòng)為服務(wù)器分配IP地址。隊列設置模塊,用于負責管理阻塞URL采集隊列,以及結果數據儲存隊列,并進(jìn)行去重操作;數據解析模塊,用于通過(guò)剖析源數據,并從中解析出目標數據項;數據封裝模塊,用于將爬取到的數據項統一封裝成標準格式輸出;數據儲存模塊,用于將封裝好的數據儲存到在線(xiàn)輿情大數據庫;日志生成模塊,用于各環(huán)節檢測狀態(tài)的日志輸出。本專(zhuān)利技術(shù)的有益療效是:1. 系統構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例。將瀏覽器訪(fǎng)問(wèn),日志生成,數據封裝,代理設置以及隊列設置等系統核心功能封裝上去。增強了系統的可擴展性和可移植性,提高了代碼的可重用性和系統的可維護性
  【技術(shù)保護點(diǎn)】
  一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。
  【技術(shù)特點(diǎn)摘要】
  1.一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。2.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  3.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。4.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。5.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行...
  【專(zhuān)利技術(shù)屬性】
  技術(shù)研制人員:李平,陳雁,胡棟,代臻,劉婷,許斌,孫先,林輝,趙玲,
  申請(專(zhuān)利權)人:西南石油大學(xué),
  類(lèi)型:發(fā)明
  國別省市:四川;51
  全部詳盡技術(shù)資料下載 我是這個(gè)專(zhuān)利的主人 查看全部

  本發(fā)明專(zhuān)利技術(shù)公開(kāi)了一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,方法包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)并定義爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取數據;S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。本發(fā)明專(zhuān)利技術(shù)構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例,將瀏覽器訪(fǎng)問(wèn)、日志生成、數據封裝、代理設置以及隊列設置等系統核心功能封裝上去,增強系統的可擴展性和可移植性,提高代碼的可重用性和系統的可維護性。
  
  全部詳盡技術(shù)資料下載
  【技術(shù)實(shí)現步驟摘要】
  本專(zhuān)利技術(shù)涉及互聯(lián)網(wǎng)輿情數據的分布式高并發(fā)采集方法及系統,特別的涉及目標數據的高效、實(shí)時(shí)采集技術(shù)實(shí)現方式及系統,尤其涉及一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統。
  技術(shù)介紹
  輿情是在一定的社會(huì )空間內,圍繞中介性社會(huì )風(fēng)波的發(fā)生、發(fā)展和變化,民眾對社會(huì )管理者形成和持有的社會(huì )政治心態(tài)。目前,網(wǎng)絡(luò )成為反映社會(huì )輿情的主要載體之一,在輿情傳播中起著(zhù)重要的作用。而輿論危機的爆發(fā)使越來(lái)越多的人關(guān)注社會(huì )輿論的形成和發(fā)展。各級黨政機關(guān)要及時(shí)了解信息,加強輿情監控,提高輿情應對能力和在新輿論環(huán)境中的執政能力,及時(shí)化解矛盾,處理好政府和民眾的關(guān)系。企事業(yè)單位也須要關(guān)注網(wǎng)路輿情,利用市場(chǎng)已有的輿情剖析系統和服務(wù)平臺,或者人員與工具結合,掌控網(wǎng)絡(luò )輿情,輔助決策。如何從大量的網(wǎng)路數據中提取出關(guān)鍵信息,是當前技術(shù)研究的一個(gè)重點(diǎn)。傳統的通用搜索引擎作為一個(gè)輔助檢索信息的工具,成為用戶(hù)訪(fǎng)問(wèn)網(wǎng)路的入口和手冊。但是,這些通用的搜索引擎也存在著(zhù)一定的局限性,1、通用搜索引擎所返回的結果收錄大量用戶(hù)不關(guān)心的網(wǎng)頁(yè)。通用搜索引擎常常對信息濃度密集且具有一定結構的數據無(wú)能為力,不能挺好地發(fā)覺(jué)和獲取關(guān)鍵信息。2、簡(jiǎn)單的基于互聯(lián)網(wǎng)的數據采集系統,其采集方式單一,無(wú)法同時(shí)多任務(wù)執行,這就造成了數據的采集效率較低,無(wú)法滿(mǎn)足數據的實(shí)時(shí)性。3、目前的其他輿情剖析監測系統,輿情數據大部分采用離線(xiàn)處理機制,在結構上就造成了其數據必然存在一定的信噪比。而隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息更新的速率越來(lái)越快,低信噪比的輿情數據采集系統成為輿情剖析項目的急切需求。
  技術(shù)實(shí)現思路
  本專(zhuān)利技術(shù)的目的在于克服現有技術(shù)的不足,提供一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,爬取的數據可生成在線(xiàn)輿情大數據庫,為相關(guān)政府及企業(yè)用戶(hù)提供在線(xiàn)數據庫服務(wù)。本專(zhuān)利技術(shù)的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現的:一種基于分布式的輿情數據實(shí)時(shí)采集方法,它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。頁(yè)面數據分為靜態(tài)數據和動(dòng)態(tài)數據;對于靜態(tài)頁(yè)面數據,爬蟲(chóng)調用模擬瀏覽器訪(fǎng)問(wèn)方式頁(yè)面地址獲取網(wǎng)頁(yè)源數據;對于動(dòng)態(tài)數據,爬蟲(chóng)在訪(fǎng)問(wèn)頁(yè)面之前,需要通過(guò)抓包的方法找到動(dòng)態(tài)數據返回鏈接,再調用瀏覽器訪(fǎng)問(wèn)方式獲取頁(yè)面數據。將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行數據爬取,直到獲取到正文URL地址;消費者負責從正文地址隊列中取出URL數據,訪(fǎng)問(wèn)頁(yè)面獲取正文頁(yè)面內容;在此過(guò)程中,生產(chǎn)者和消費者彼此之間通過(guò)阻塞隊列來(lái)進(jìn)行通信;采用隊列設置模塊提供隊列的存取操作,并初始化隊列數據庫并完善聯(lián)接。
  所述的步驟S3包括對動(dòng)態(tài)網(wǎng)頁(yè)數據的剖析和對靜態(tài)頁(yè)面數據的剖析,其中對于靜態(tài)頁(yè)面數據使用封裝好的Xpath方式,給定數據項的路徑地址即可獲取到對應數據項;同時(shí)結合正則表達式,通過(guò)正則表達式過(guò)濾篩選數據,補充獲取XPath未能解析到的數據;系統將解析到的數據形參給事前定義好的對應的數據項;對于動(dòng)態(tài)網(wǎng)頁(yè)數據,使用JSON方式獲取字典格式的動(dòng)態(tài)網(wǎng)頁(yè)數據項。所述的步驟S4步驟包括:在數據采集之前,采用鞋廠(chǎng)設計模式,將每一類(lèi)網(wǎng)站定義好的數據項以及保留數組封裝成字典格式,并提供統一的數據插口;在數據采集完成后,根據數據源網(wǎng)站類(lèi)別,系統調用對應的封裝方式將采集到的數據封裝為對應類(lèi)的統一格式;在封裝過(guò)程中使用UUID方式為每條數據生成惟一的標識符,方便后續的檢索操作。所述的步驟S5包括:采用鞋廠(chǎng)設計模式將結果數據的儲存操作封裝為隊列方式,采集到數據然后調用隊列方式將數據輸入數據庫服務(wù)器;在數據庫服務(wù)器中分別為每一類(lèi)源數據網(wǎng)站設置對應的數據庫,在數據儲存時(shí)將數據存到對應的數據庫;根據保存數據的不同采取不同的數據庫,保存生產(chǎn)者和消費者之間的URL隊列數據。所述的步驟S6包括:采用鞋廠(chǎng)模式將日志方式封裝上去,提供統一的插口訪(fǎng)問(wèn);日志采用logging模塊給運行中的程序提供了一個(gè)標準的信息輸出插口;系統開(kāi)始運行的時(shí)侯即調用日志插口生成實(shí)例,在整個(gè)過(guò)程中記錄每位模塊的運行狀態(tài)與結果;在每一輪爬蟲(chóng)程序執行完成時(shí),將檢測結果按天生成日志文件。
  采用所述的方式的系統,所述的系統包括:數據打算模塊,用于完成源站的分類(lèi)以及目標數據項定義;更新檢測模塊,用于檢測目標數據網(wǎng)站的更新情況。數據爬取模塊,用于模擬瀏覽器環(huán)境訪(fǎng)問(wèn)源站目標頁(yè)面并將頁(yè)面數據獲取到本地;代理設置模塊,用于手動(dòng)為服務(wù)器分配IP地址。隊列設置模塊,用于負責管理阻塞URL采集隊列,以及結果數據儲存隊列,并進(jìn)行去重操作;數據解析模塊,用于通過(guò)剖析源數據,并從中解析出目標數據項;數據封裝模塊,用于將爬取到的數據項統一封裝成標準格式輸出;數據儲存模塊,用于將封裝好的數據儲存到在線(xiàn)輿情大數據庫;日志生成模塊,用于各環(huán)節檢測狀態(tài)的日志輸出。本專(zhuān)利技術(shù)的有益療效是:1. 系統構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例。將瀏覽器訪(fǎng)問(wèn),日志生成,數據封裝,代理設置以及隊列設置等系統核心功能封裝上去。增強了系統的可擴展性和可移植性,提高了代碼的可重用性和系統的可維護性
  【技術(shù)保護點(diǎn)】
  一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。
  【技術(shù)特點(diǎn)摘要】
  1.一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。2.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  3.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。4.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。5.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行...
  【專(zhuān)利技術(shù)屬性】
  技術(shù)研制人員:李平,陳雁,胡棟,代臻,劉婷,許斌,孫先,林輝,趙玲,
  申請(專(zhuān)利權)人:西南石油大學(xué),
  類(lèi)型:發(fā)明
  國別省市:四川;51
  全部詳盡技術(shù)資料下載 我是這個(gè)專(zhuān)利的主人

全網(wǎng)微博數據每日億級實(shí)時(shí)采集

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 338 次瀏覽 ? 2020-08-09 08:34 ? 來(lái)自相關(guān)話(huà)題

  實(shí)驗數據
  硬件配置
  2臺服務(wù)器,每臺的配置如下
  系統CPU顯存硬碟
  Ubuntu16.04E5-2630 v4 @ 2.20GHz * 832G1T
  抓取速率
  每臺服務(wù)器滿(mǎn)負荷運轉:
  每臺服務(wù)器啟動(dòng)50個(gè)爬蟲(chóng)進(jìn)程,兩臺共100個(gè)爬蟲(chóng)進(jìn)程
  每個(gè)進(jìn)程的抓取情況:
  可以看見(jiàn)每位進(jìn)程,每分鐘可以抓取300+頁(yè)面。那么,一天共可以抓?。?br />   300(pages/(process*min)) * 100(prcesses) * 60*24(mins/day) = 43,200,000(pages/day)
  所以三天可以抓取4.3千萬(wàn)的頁(yè)面
  如果抓取用戶(hù)個(gè)人信息,1(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 1(data/page) = 43,200,000(data/day) 4.3千萬(wàn)
  如果抓取用戶(hù)微博數據,10(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 10(data/page) = 432,000,000(data/day) 4.3億
  數據庫統計
  MongoDB IO量
  每秒4500+的數據插入量,所以三天就是4億+的數據采集入庫量
  用戶(hù)個(gè)人信息數據
  微博用戶(hù)id采用海量采集的形式,目前早已擁有5.5千萬(wàn)有效真實(shí)用戶(hù)的微博id,并且在不斷下降中
  發(fā)掘id有效id有效百分比
  97,267,43555,832,4010.574
  用戶(hù)微博數據
  實(shí)時(shí)抓取5.5千萬(wàn)+有效用戶(hù)的微博,數據統計
  微博發(fā)表日期為11.20~11.24日之間的微博
  11.2011.2111.2211.2311.24
  13,864,35918,438,46018,866,07218,143,92311,351,606
  當前數據庫總數:537,475,459 (5億)
  數據展示
  用戶(hù)數據
  微博數據 查看全部

  實(shí)驗數據
  硬件配置
  2臺服務(wù)器,每臺的配置如下
  系統CPU顯存硬碟
  Ubuntu16.04E5-2630 v4 @ 2.20GHz * 832G1T
  抓取速率
  每臺服務(wù)器滿(mǎn)負荷運轉:
  每臺服務(wù)器啟動(dòng)50個(gè)爬蟲(chóng)進(jìn)程,兩臺共100個(gè)爬蟲(chóng)進(jìn)程
  每個(gè)進(jìn)程的抓取情況:
  可以看見(jiàn)每位進(jìn)程,每分鐘可以抓取300+頁(yè)面。那么,一天共可以抓?。?br />   300(pages/(process*min)) * 100(prcesses) * 60*24(mins/day) = 43,200,000(pages/day)
  所以三天可以抓取4.3千萬(wàn)的頁(yè)面
  如果抓取用戶(hù)個(gè)人信息,1(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 1(data/page) = 43,200,000(data/day) 4.3千萬(wàn)
  如果抓取用戶(hù)微博數據,10(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 10(data/page) = 432,000,000(data/day) 4.3億
  數據庫統計
  MongoDB IO量
  每秒4500+的數據插入量,所以三天就是4億+的數據采集入庫量
  用戶(hù)個(gè)人信息數據
  微博用戶(hù)id采用海量采集的形式,目前早已擁有5.5千萬(wàn)有效真實(shí)用戶(hù)的微博id,并且在不斷下降中
  發(fā)掘id有效id有效百分比
  97,267,43555,832,4010.574
  用戶(hù)微博數據
  實(shí)時(shí)抓取5.5千萬(wàn)+有效用戶(hù)的微博,數據統計
  微博發(fā)表日期為11.20~11.24日之間的微博
  11.2011.2111.2211.2311.24
  13,864,35918,438,46018,866,07218,143,92311,351,606
  當前數據庫總數:537,475,459 (5億)
  數據展示
  用戶(hù)數據
  微博數據

QQ群實(shí)時(shí)數據查詢(xún)采集器

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 570 次瀏覽 ? 2020-08-09 01:47 ? 來(lái)自相關(guān)話(huà)題

  這是QQ群組實(shí)時(shí)數據查詢(xún)采集器,它是QQ群組號碼的輔助軟件.
  軟件功能
  它可以根據關(guān)鍵字捕獲組號,根據段落編號捕獲組號和采集組,采集朋友的QQ號,支持將成員數保存為T(mén)XT,Excel格式,需要使用軟件登錄QQ帳戶(hù).
  軟件功能
  1. 根據關(guān)鍵詞采集組號: 輸入關(guān)鍵詞,省市等信息.
  2. 根據號碼段采集組號: 輸入組號段以采集組名和對應于組號的創(chuàng )建者. 僅使用TM2009進(jìn)行采集.
  3. 采集QQ號: 可以根據城市,性別,年齡和在線(xiàn)狀態(tài)采集QQ號.
  4. 采集朋友的QQ數字: 提取朋友的數字并選擇將其分組.
  5. 采集組中的會(huì )員號: 您可以采集單個(gè)組中的成員,也可以采集所有加入的組.
  6. 它支持以TXT和Excel格式保存,并可以使用靈活的保存格式模板導出為qq郵箱格式.
  軟件提示
  該軟件功能強大,易于操作,人性化的設計理念,并且操作頁(yè)面的用戶(hù)體驗非常簡(jiǎn)潔,易于使用,并且完全是傻瓜式的操作模式.
  軟件屏幕截圖
  
  相關(guān)軟件
  起點(diǎn)QQ簽名采集器: 這是起點(diǎn)QQ簽名采集器,可以一鍵自動(dòng)采集網(wǎng)絡(luò )上的QQ簽名,并支持導出到txt.
  明智的QQ采集器: 這是明智的QQ采集器,可用于批量采集QQ的軟件!可以根據地區,年齡,性別或關(guān)鍵字進(jìn)行采集! 查看全部

  這是QQ群組實(shí)時(shí)數據查詢(xún)采集器,它是QQ群組號碼的輔助軟件.
  軟件功能
  它可以根據關(guān)鍵字捕獲組號,根據段落編號捕獲組號和采集組,采集朋友的QQ號,支持將成員數保存為T(mén)XT,Excel格式,需要使用軟件登錄QQ帳戶(hù).
  軟件功能
  1. 根據關(guān)鍵詞采集組號: 輸入關(guān)鍵詞,省市等信息.
  2. 根據號碼段采集組號: 輸入組號段以采集組名和對應于組號的創(chuàng )建者. 僅使用TM2009進(jìn)行采集.
  3. 采集QQ號: 可以根據城市,性別,年齡和在線(xiàn)狀態(tài)采集QQ號.
  4. 采集朋友的QQ數字: 提取朋友的數字并選擇將其分組.
  5. 采集組中的會(huì )員號: 您可以采集單個(gè)組中的成員,也可以采集所有加入的組.
  6. 它支持以TXT和Excel格式保存,并可以使用靈活的保存格式模板導出為qq郵箱格式.
  軟件提示
  該軟件功能強大,易于操作,人性化的設計理念,并且操作頁(yè)面的用戶(hù)體驗非常簡(jiǎn)潔,易于使用,并且完全是傻瓜式的操作模式.
  軟件屏幕截圖
  
  相關(guān)軟件
  起點(diǎn)QQ簽名采集器: 這是起點(diǎn)QQ簽名采集器,可以一鍵自動(dòng)采集網(wǎng)絡(luò )上的QQ簽名,并支持導出到txt.
  明智的QQ采集器: 這是明智的QQ采集器,可用于批量采集QQ的軟件!可以根據地區,年齡,性別或關(guān)鍵字進(jìn)行采集!

FileBeat + Kafka用于實(shí)時(shí)日志采集

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 731 次瀏覽 ? 2020-08-07 08:16 ? 來(lái)自相關(guān)話(huà)題

  之前,我們其中一項業(yè)務(wù)的實(shí)時(shí)日志采集和處理架構大致如下:
  
  在日志生成端(LogServer服務(wù)器)上,已部署FlumeAgent實(shí)時(shí)監視生成的日志,然后將其發(fā)送到Kafka. 經(jīng)過(guò)觀(guān)察,每個(gè)FlumeAgent占用大量系統資源(至少占CPU的50%或更多). 對于另一項業(yè)務(wù),LogServer承受著(zhù)巨大的壓力,CPU資源特別緊張. 如果要實(shí)時(shí)采集和分析日志,則需要一個(gè)更輕量級且耗費資源較少的日志采集框架,因此我嘗試了Filebeat.
  Filebeat是使用go語(yǔ)言開(kāi)發(fā)的開(kāi)源文本日志采集器. 它重構了logstash采集器源代碼,將其安裝在日志生成服務(wù)器上以監視日志目錄或特定的日志文件,并將它們發(fā)送到kastka上的logstash,elasticsearch和. Filebeat是一種數據采集解決方案,它替代了logstash-forwarder. 原因是logstash在jvm上運行并且消耗大量服務(wù)器資源(Flume也是一樣). 由于Filebeat如此輕巧,因此不要期望它在日志采集過(guò)程中做更多的清理和轉換工作. 它僅負責一件事,即有效且可靠地傳輸日志數據. 至于清潔和轉換,您可以在此過(guò)程中進(jìn)行后續操作.
  Filebeat的官方網(wǎng)站地址是: 您可以下載Filebeat并在此地址查看文檔.
  Filebeat安裝配置
  Filebeat的安裝和配置非常簡(jiǎn)單.
  下載filebeat-5.6.3-linux-x86_64.tar.gz并將其解壓縮.
  輸入filebeat-5.6.3-linux-x86_64目錄并編輯配置文件filebeat.yml
  配置輸入并監視日志文件:
  filebeat.prospectors:
  -input_type: log
  路徑:
  -/ data / dmp / openresty / logs / dmp_intf _ *. log
  配置輸出到Kafka
  #——————————– Kafka輸出——————————–
  output.kafka:
  主機: [“ datadev1: 9092”]
  topic: lxw1234
  required_acks: 1
  PS: 假設您已經(jīng)安裝并配置了Kafka,并且已經(jīng)建立了主題.
  有關(guān)更多配置選項,請參閱官方文檔.
  需要大數據學(xué)習材料和交流學(xué)習的學(xué)生可以增加數據學(xué)習小組: 724693112有免費的材料,可以與一群學(xué)習大數據的小伙伴共享和共同努力
  文件拍開(kāi)始
  在filebeat-5.6.3-linux-x86_64目錄下,執行命令:
  ./ filebeat -e -c filebeat.yml以啟動(dòng)Filebeat.
  啟動(dòng)后,Filebeat開(kāi)始監視輸入配置中的日志文件,并將消息發(fā)送到Kafka.
  您可以在Kafka中啟動(dòng)Consumer來(lái)查看:
  ./ kafka-console-consumer.sh –bootstrap-server localhost: 9092 –topic lxw1234 –from-beginning
  Filebeat郵件格式
  在原創(chuàng )日志中,日志格式如下:
  2017-11-09T15: 18: 05 + 08: 00 |?| 127.0.0.1 |?|-|?| hy_xyz |?| 200 |?| 0.002
  Filebeat將消息封裝為JSON字符串,除了原創(chuàng )日志外,還收錄其他信息.
  
  @timestamp: 郵件發(fā)送時(shí)間
  beat: Filebeat運行主機和版本信息
  字段: 一些用戶(hù)定義的變量和值非常有用,類(lèi)似于Flume的靜態(tài)攔截器
  input_type: 輸入類(lèi)型
  消息: 原創(chuàng )日志內容
  offset: 此消息在原創(chuàng )日志文件中的偏移量
  源: 日志文件
  此外,Filebeat的CPU使用率:
  
  初步試用后,以下問(wèn)題尚待測試:
  數據可靠性: 是否存在日志數據丟失或重復發(fā)送;
  您可以自定義Filebeat的消息格式以刪除一些多余和無(wú)用的項目嗎? 查看全部

  之前,我們其中一項業(yè)務(wù)的實(shí)時(shí)日志采集和處理架構大致如下:
  
  在日志生成端(LogServer服務(wù)器)上,已部署FlumeAgent實(shí)時(shí)監視生成的日志,然后將其發(fā)送到Kafka. 經(jīng)過(guò)觀(guān)察,每個(gè)FlumeAgent占用大量系統資源(至少占CPU的50%或更多). 對于另一項業(yè)務(wù),LogServer承受著(zhù)巨大的壓力,CPU資源特別緊張. 如果要實(shí)時(shí)采集和分析日志,則需要一個(gè)更輕量級且耗費資源較少的日志采集框架,因此我嘗試了Filebeat.
  Filebeat是使用go語(yǔ)言開(kāi)發(fā)的開(kāi)源文本日志采集器. 它重構了logstash采集器源代碼,將其安裝在日志生成服務(wù)器上以監視日志目錄或特定的日志文件,并將它們發(fā)送到kastka上的logstash,elasticsearch和. Filebeat是一種數據采集解決方案,它替代了logstash-forwarder. 原因是logstash在jvm上運行并且消耗大量服務(wù)器資源(Flume也是一樣). 由于Filebeat如此輕巧,因此不要期望它在日志采集過(guò)程中做更多的清理和轉換工作. 它僅負責一件事,即有效且可靠地傳輸日志數據. 至于清潔和轉換,您可以在此過(guò)程中進(jìn)行后續操作.
  Filebeat的官方網(wǎng)站地址是: 您可以下載Filebeat并在此地址查看文檔.
  Filebeat安裝配置
  Filebeat的安裝和配置非常簡(jiǎn)單.
  下載filebeat-5.6.3-linux-x86_64.tar.gz并將其解壓縮.
  輸入filebeat-5.6.3-linux-x86_64目錄并編輯配置文件filebeat.yml
  配置輸入并監視日志文件:
  filebeat.prospectors:
  -input_type: log
  路徑:
  -/ data / dmp / openresty / logs / dmp_intf _ *. log
  配置輸出到Kafka
  #——————————– Kafka輸出——————————–
  output.kafka:
  主機: [“ datadev1: 9092”]
  topic: lxw1234
  required_acks: 1
  PS: 假設您已經(jīng)安裝并配置了Kafka,并且已經(jīng)建立了主題.
  有關(guān)更多配置選項,請參閱官方文檔.
  需要大數據學(xué)習材料和交流學(xué)習的學(xué)生可以增加數據學(xué)習小組: 724693112有免費的材料,可以與一群學(xué)習大數據的小伙伴共享和共同努力
  文件拍開(kāi)始
  在filebeat-5.6.3-linux-x86_64目錄下,執行命令:
  ./ filebeat -e -c filebeat.yml以啟動(dòng)Filebeat.
  啟動(dòng)后,Filebeat開(kāi)始監視輸入配置中的日志文件,并將消息發(fā)送到Kafka.
  您可以在Kafka中啟動(dòng)Consumer來(lái)查看:
  ./ kafka-console-consumer.sh –bootstrap-server localhost: 9092 –topic lxw1234 –from-beginning
  Filebeat郵件格式
  在原創(chuàng )日志中,日志格式如下:
  2017-11-09T15: 18: 05 + 08: 00 |?| 127.0.0.1 |?|-|?| hy_xyz |?| 200 |?| 0.002
  Filebeat將消息封裝為JSON字符串,除了原創(chuàng )日志外,還收錄其他信息.
  
  @timestamp: 郵件發(fā)送時(shí)間
  beat: Filebeat運行主機和版本信息
  字段: 一些用戶(hù)定義的變量和值非常有用,類(lèi)似于Flume的靜態(tài)攔截器
  input_type: 輸入類(lèi)型
  消息: 原創(chuàng )日志內容
  offset: 此消息在原創(chuàng )日志文件中的偏移量
  源: 日志文件
  此外,Filebeat的CPU使用率:
  
  初步試用后,以下問(wèn)題尚待測試:
  數據可靠性: 是否存在日志數據丟失或重復發(fā)送;
  您可以自定義Filebeat的消息格式以刪除一些多余和無(wú)用的項目嗎?

實(shí)時(shí)視頻IMU采集項目(1): 在Qt中使用FFmpeg庫

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 308 次瀏覽 ? 2020-08-07 08:15 ? 來(lái)自相關(guān)話(huà)題

  概述
  要實(shí)現項目中視頻流的實(shí)時(shí)傳輸和顯示,最常見(jiàn)的是編碼和解碼操作. 如果您自己實(shí)現H.264的編碼和解碼,則將花費大量時(shí)間和精力. 因此,通常使用開(kāi)源H.264編解碼器. 所謂的編解碼器是用于實(shí)現編碼和解碼,輸入原創(chuàng )數據流以及輸出H.264編碼流的代碼.
  在Ubuntu16.04下安裝FFmpeg
  首先在官方網(wǎng)站上下載最新的FFmpeg壓縮包源代碼,然后使用以下命令解壓縮:
  $ tar xvf ffmpeg-3.4.2.tar.bz2
  然后進(jìn)入解壓縮的文件夾以查看安裝步驟:
  $ cd ffmpeg-3.4.2
$ cat INSTALL.md
  顯示內容如下:
  安裝FFmpeg: 輸入./configure創(chuàng )建配置. 配置列表
  通過(guò)運行configure --help打印
  選項.
  可以從與FFmpeg源不同的目錄中啟動(dòng)
  configure,以在樹(shù)外構建對象. 為此,請在啟動(dòng)配置時(shí)使用絕對路徑,例如/ ffmpegdir / ffmpeg / configure. 然后鍵入make來(lái)構建FFmpeg. 需要GNU Make 3.81或更高版本. 鍵入make install以安裝您構建的所有二進(jìn)制文件和庫.
  注意
  默認情況下,非系統依賴(lài)項(例如libx264,libvpx)處于禁用狀態(tài).
  請按照上述步驟進(jìn)行安裝:
  $ ./configure --prefix=/home/string/ffmpeg3.4.2 --enable-shared --disable-static
  提醒: 找不到Yasm / nasm或太舊. 使用–disable-yasm進(jìn)行嚴重破壞的構建.
  發(fā)現未安裝yasm,因此請安裝yasm:
  $ sudo apt-get install yasm
  安裝后,重新執行上述第一步以生成配置文件
  $ make
  $ make install
# 安裝后,查看ffmpeg版本
cd ~/ffmpeg3.4.2/bin
./ffmpeg -version
  安裝成功.
  Qt導入FFmpeg庫
  首先創(chuàng )建一個(gè)新的Qt項目,默認情況下每個(gè)人都會(huì )知道這一點(diǎn). 下一步是根據先前的安裝目錄配置Qt pro文件. 如下圖所示:
  
  核心是添加FFmpeg庫目錄和庫文件路徑信息.
  INCLUDEPATH += /home/string/ffmpeg3.4.2/include
LIBS += -L /home/string/ffmpeg3.4.2/lib -lavcodec -lswresample -lavutil -lavformat -lswscale
  下一步是修改main.cpp文件,以測試FFmpeg文件是否成功導入.
<p># main.cpp
#include "mainwidget.h"
#include
#include
using namespace std;
// 由于建立的是C++工程,編譯時(shí)使用的是C++編譯器編譯,
// 而FFmpeg是C的庫,因此這里需要加上extern "C",否則會(huì )提示各種未定義
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libswresample/swresample.h"
#include "libavdevice/avdevice.h"
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWidget w;
w.show();
cout 查看全部

  概述
  要實(shí)現項目中視頻流的實(shí)時(shí)傳輸和顯示,最常見(jiàn)的是編碼和解碼操作. 如果您自己實(shí)現H.264的編碼和解碼,則將花費大量時(shí)間和精力. 因此,通常使用開(kāi)源H.264編解碼器. 所謂的編解碼器是用于實(shí)現編碼和解碼,輸入原創(chuàng )數據流以及輸出H.264編碼流的代碼.
  在Ubuntu16.04下安裝FFmpeg
  首先在官方網(wǎng)站上下載最新的FFmpeg壓縮包源代碼,然后使用以下命令解壓縮:
  $ tar xvf ffmpeg-3.4.2.tar.bz2
  然后進(jìn)入解壓縮的文件夾以查看安裝步驟:
  $ cd ffmpeg-3.4.2
$ cat INSTALL.md
  顯示內容如下:
  安裝FFmpeg: 輸入./configure創(chuàng )建配置. 配置列表
  通過(guò)運行configure --help打印
  選項.
  可以從與FFmpeg源不同的目錄中啟動(dòng)
  configure,以在樹(shù)外構建對象. 為此,請在啟動(dòng)配置時(shí)使用絕對路徑,例如/ ffmpegdir / ffmpeg / configure. 然后鍵入make來(lái)構建FFmpeg. 需要GNU Make 3.81或更高版本. 鍵入make install以安裝您構建的所有二進(jìn)制文件和庫.
  注意
  默認情況下,非系統依賴(lài)項(例如libx264,libvpx)處于禁用狀態(tài).
  請按照上述步驟進(jìn)行安裝:
  $ ./configure --prefix=/home/string/ffmpeg3.4.2 --enable-shared --disable-static
  提醒: 找不到Yasm / nasm或太舊. 使用–disable-yasm進(jìn)行嚴重破壞的構建.
  發(fā)現未安裝yasm,因此請安裝yasm:
  $ sudo apt-get install yasm
  安裝后,重新執行上述第一步以生成配置文件
  $ make
  $ make install
# 安裝后,查看ffmpeg版本
cd ~/ffmpeg3.4.2/bin
./ffmpeg -version
  安裝成功.
  Qt導入FFmpeg庫
  首先創(chuàng )建一個(gè)新的Qt項目,默認情況下每個(gè)人都會(huì )知道這一點(diǎn). 下一步是根據先前的安裝目錄配置Qt pro文件. 如下圖所示:
  
  核心是添加FFmpeg庫目錄和庫文件路徑信息.
  INCLUDEPATH += /home/string/ffmpeg3.4.2/include
LIBS += -L /home/string/ffmpeg3.4.2/lib -lavcodec -lswresample -lavutil -lavformat -lswscale
  下一步是修改main.cpp文件,以測試FFmpeg文件是否成功導入.
<p># main.cpp
#include "mainwidget.h"
#include
#include
using namespace std;
// 由于建立的是C++工程,編譯時(shí)使用的是C++編譯器編譯,
// 而FFmpeg是C的庫,因此這里需要加上extern "C",否則會(huì )提示各種未定義
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libswresample/swresample.h"
#include "libavdevice/avdevice.h"
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWidget w;
w.show();
cout

[正版]采集所有者信息采集軟件企業(yè)目錄實(shí)時(shí)所有者信息采集軟件

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 306 次瀏覽 ? 2020-08-07 03:15 ? 來(lái)自相關(guān)話(huà)題

  [正版]采集所有者信息采集軟件企業(yè)目錄實(shí)時(shí)所有者信息采集軟件
  [Jigu客房新聞搜索營(yíng)銷(xiāo)軟件]屬于“ Jike營(yíng)銷(xiāo)軟件”系列. 該軟件是專(zhuān)業(yè)的所有者搜索軟件和功能強大的所有者信息搜索和采集軟件. 它可以自動(dòng)采集最新的所有者目錄,可以幫助您快速識別目標客戶(hù),進(jìn)行充分的市場(chǎng)研究,為銷(xiāo)售管理和營(yíng)銷(xiāo)管理做充分的準備,并為您提供直接與目標客戶(hù)聯(lián)系的機會(huì ). 搜索結果支持導出到Excel或一鍵導入到手機通訊簿. 該數據可用于研究或市場(chǎng)參考. (非個(gè)人隱私信息,該軟件不生產(chǎn),也不存儲任何數據)
  軟件功能,只需用鼠標單擊,無(wú)需編寫(xiě)任何采集規則,[它可以直接導出Excel文件,并且只需單擊一下即可導入手機通訊錄,適用于電話(huà)銷(xiāo)售和微信營(yíng)銷(xiāo). )
  1. 實(shí)時(shí)采集,不是歷史數據,而是官方網(wǎng)站的最新搜索數據.
  2. 該操作簡(jiǎn)單易用,傻瓜式操作,分三個(gè)步驟完成(配置城市和行業(yè)詞匯;單擊以開(kāi)始采集;導出數據). 無(wú)需手動(dòng)編寫(xiě)任何規則. 操作就是這么簡(jiǎn)單.
  3. 支持多省/多城市采集. (同時(shí)在多個(gè)城市中使用多個(gè)關(guān)鍵字)使搜索更加“簡(jiǎn)單,快速,有效”.
  4. 快速搜索,極快的操作體驗,流暢舒適.
  5. 采集效率和數據完整性領(lǐng)先業(yè)界.
  6. 及時(shí)處理客戶(hù)反饋和建議還使該軟件能夠很好地處理許多細節.
  7. 具有自動(dòng)升級功能: 新版本正式發(fā)布后,客戶(hù)端打開(kāi)后將自動(dòng)升級到最新版本.
  該軟件是許多批發(fā)商,電子商務(wù)業(yè)務(wù)推廣和微型業(yè)務(wù)推廣人員將業(yè)務(wù)量增加一倍的法寶. 它被各個(gè)行業(yè)的許多業(yè)務(wù)人員使用. 查看全部

  [正版]采集所有者信息采集軟件企業(yè)目錄實(shí)時(shí)所有者信息采集軟件
  [Jigu客房新聞搜索營(yíng)銷(xiāo)軟件]屬于“ Jike營(yíng)銷(xiāo)軟件”系列. 該軟件是專(zhuān)業(yè)的所有者搜索軟件和功能強大的所有者信息搜索和采集軟件. 它可以自動(dòng)采集最新的所有者目錄,可以幫助您快速識別目標客戶(hù),進(jìn)行充分的市場(chǎng)研究,為銷(xiāo)售管理和營(yíng)銷(xiāo)管理做充分的準備,并為您提供直接與目標客戶(hù)聯(lián)系的機會(huì ). 搜索結果支持導出到Excel或一鍵導入到手機通訊簿. 該數據可用于研究或市場(chǎng)參考. (非個(gè)人隱私信息,該軟件不生產(chǎn),也不存儲任何數據)
  軟件功能,只需用鼠標單擊,無(wú)需編寫(xiě)任何采集規則,[它可以直接導出Excel文件,并且只需單擊一下即可導入手機通訊錄,適用于電話(huà)銷(xiāo)售和微信營(yíng)銷(xiāo). )
  1. 實(shí)時(shí)采集,不是歷史數據,而是官方網(wǎng)站的最新搜索數據.
  2. 該操作簡(jiǎn)單易用,傻瓜式操作,分三個(gè)步驟完成(配置城市和行業(yè)詞匯;單擊以開(kāi)始采集;導出數據). 無(wú)需手動(dòng)編寫(xiě)任何規則. 操作就是這么簡(jiǎn)單.
  3. 支持多省/多城市采集. (同時(shí)在多個(gè)城市中使用多個(gè)關(guān)鍵字)使搜索更加“簡(jiǎn)單,快速,有效”.
  4. 快速搜索,極快的操作體驗,流暢舒適.
  5. 采集效率和數據完整性領(lǐng)先業(yè)界.
  6. 及時(shí)處理客戶(hù)反饋和建議還使該軟件能夠很好地處理許多細節.
  7. 具有自動(dòng)升級功能: 新版本正式發(fā)布后,客戶(hù)端打開(kāi)后將自動(dòng)升級到最新版本.
  該軟件是許多批發(fā)商,電子商務(wù)業(yè)務(wù)推廣和微型業(yè)務(wù)推廣人員將業(yè)務(wù)量增加一倍的法寶. 它被各個(gè)行業(yè)的許多業(yè)務(wù)人員使用.

2020年7月的最新消息,優(yōu)采云在微信公眾號上批量采集最新文章(包括實(shí)時(shí)更新)的方法和思想

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 484 次瀏覽 ? 2020-08-06 21:21 ? 來(lái)自相關(guān)話(huà)題

  優(yōu)采云采集微信官方帳戶(hù),許多網(wǎng)站建設者都希望使用此功能. 我在2020年4月寫(xiě)了這些內容,但今天是7月,根本沒(méi)有問(wèn)題. 我不必多說(shuō),只需直接交付干貨即可.
  首先談?wù)勎业男枨?
  獲取約10個(gè)正式帳戶(hù)的批文. 監視最新帖子,大概的想法是早上檢查并在下午再次檢查. 采集可用的新文章.
  為什么要使用優(yōu)采云?
  該軟件非常易于使用,具有自動(dòng)URL重復數據刪除功能. 重復的鏈接將被跳過(guò),不再使用. 此外,優(yōu)采云具有WordPress免登錄發(fā)布界面. 我一直在為小白使用它. 我已經(jīng)習慣了,很容易上手.
  解決方案選擇:
  主要關(guān)注解決官方帳戶(hù)的歷史文章網(wǎng)址,即文章列表.
  首先,我想在開(kāi)始時(shí)使用它(這也是最在線(xiàn)的教程),但是事實(shí)證明,在Sogou官方帳戶(hù)上的搜索不再顯示某個(gè)特定官方帳戶(hù)的最新文章. 據說(shuō)它將在2019年之前無(wú)法使用,騰訊已關(guān)閉該界面.
  2. 直接捕獲微信數據包,使用fildder和其他數據包捕獲工具,并與PC版微信配合捕獲官方帳戶(hù)URL. 這非常復雜. 我看了一輪教程,果斷地放棄了,這超出了我的承受能力.
  3. 使用第三方公共帳戶(hù)數據查詢(xún)平臺. 該程序可以運行. 經(jīng)過(guò)研究,我發(fā)現了三個(gè).
  1. 西瓜助手:
  2. 小寶:
  
  3. 一個(gè)同伴插件:
  
  談?wù)勊鼈兏髯缘膬?yōu)點(diǎn)和缺點(diǎn):
  西瓜助手,優(yōu)點(diǎn): 可以查詢(xún)大量的官方賬號,并且視覺(jué)更新很快. 就像普通網(wǎng)站的采集一樣,官方帳戶(hù)中的文章列表可以直接通過(guò)優(yōu)采云采集. 缺點(diǎn),收費和昂貴的批次. 普通版是每月99元.
  小寶,優(yōu)點(diǎn),免費,您可以在登錄時(shí)查看官方帳戶(hù)數據,快速更新(基本上會(huì )有一天的間隔),并且該官方帳戶(hù)收錄更多內容. 缺點(diǎn): 優(yōu)采云無(wú)法直接采集列表,它是由js算法編寫(xiě)的.
  Yiban插件,優(yōu)點(diǎn),免費,有財云可以直接采集列表. 缺點(diǎn)是,某些官方帳戶(hù)無(wú)法找到數據,更新情況就像過(guò)山車(chē),相隔一天,相隔半年.
  我還體驗了一個(gè)名為vread的平臺,地址為: . 該平臺具有部分官方帳戶(hù)內容,并且還通過(guò)監視采集了最新的官方帳戶(hù)文章. 優(yōu)采云的優(yōu)勢可以直接采集. 缺點(diǎn): 官方帳戶(hù)收錄的較少,需要您自己提交(我提交了一個(gè),在前一天晚上提交,但第二天不收錄)并收取費用. 每月12元. 盡管價(jià)格便宜,但它確實(shí)不像免費的一部分插件那樣容易使用.
  我在第三方平臺上浪費了很多時(shí)間. 西瓜助理,我已經(jīng)寫(xiě)好了優(yōu)采云站的采集規則,目前正處于篩選官方賬戶(hù)的階段. 結果,第二天,系統提示我升級我的會(huì )員資格以繼續使用它. 操我,我的努力是徒勞的. 浪費時(shí)間.
  一個(gè)合作伙伴插件,編寫(xiě)規則也很簡(jiǎn)單. 但是,我最終放棄了與官方帳戶(hù)數據更新迷相同的操作.
  小寶,這種機動(dòng)性很好. 但是它呈現的列表是由js呈現的. 優(yōu)采云無(wú)能為力. 它只能通過(guò)帶有硒文本的python運行. 該硒僅僅是驅動(dòng)瀏覽器打開(kāi)網(wǎng)頁(yè)的程序. 以這種方式捕獲的結果是js算法完成時(shí)顯示的結果.
  我知道事實(shí),但是去年我學(xué)習了python一兩個(gè)星期,看了幾節課,現在我完全忘記了. 因此,我再次學(xué)習了python,并首先在站點(diǎn)b上搜索了硒教程. 看了幾次之后,我感到不舒服. 從硬盤(pán)上,我找到了一套“ Python3 Web Crawler實(shí)用案例”,該軟件是去年由崔慶才先生下載的. 在實(shí)際的一章中有一個(gè)實(shí)際的課程: “第16類(lèi): 使用硒模擬瀏覽器獲取淘寶商品和食品信息”. 這只是完美的教程. 閱讀幾次后,我在Internet上找到了一些源代碼,然后就可以開(kāi)始工作了.
  安裝python,pycharm等工具并不會(huì )多說(shuō),新手已經(jīng)花了很多時(shí)間.
  您認為最終計劃已經(jīng)完成嗎?
  否.
  四個(gè). 這不是源于Micro Treasure的官方帳戶(hù)商品數據爬網(wǎng)的最新缺陷(沒(méi)有那天,但只有昨天). 我也想找出是否還有更直接的方法. 確實(shí)如此. 那是微信公眾號的官方運營(yíng)平臺.
  您可以在此處管理材料,插入鏈接并引用其他官方帳戶(hù). 此處的官方帳戶(hù)顯示最新數據. 可以捕獲一個(gè)小時(shí)前的文章.
  
  但是,優(yōu)采云無(wú)法在此處直接爬取列表. Python和硒仍然需要戰斗. 經(jīng)過(guò)一夜零一夜的研究.
  我終于完成了這項任務(wù).
  最終的實(shí)施計劃如下:
  微信公眾號操作平臺,獲取列表頁(yè)面網(wǎng)址,該網(wǎng)址生成一個(gè)html文件并將其保存到本地網(wǎng)站(由phpstudy構建). 然后轉到Ucai Cloud以提取這些html中的URL,然后采集一篇文章. (通過(guò)這種方式,優(yōu)采云的效果與普通網(wǎng)站的采集效果相同).
  為什么不直接使用python采集官方帳戶(hù)的目標文章?因為我的技術(shù)不到位,所以要采集特定的文章,我必須了解圖像下載和html標簽處理. 我是新手,一點(diǎn)也不,我不知道學(xué)習需要多長(cháng)時(shí)間. 此外,官方帳戶(hù)文章的發(fā)布時(shí)間由js表示. 我可以通過(guò)優(yōu)采云標簽的方法直接從硒捕獲的html信息中直接調用它.
  
  
  我最近說(shuō)過(guò): python中的Selenium確實(shí)是人工制品!從理論上講,任何東西都可以捕獲! 查看全部

  優(yōu)采云采集微信官方帳戶(hù),許多網(wǎng)站建設者都希望使用此功能. 我在2020年4月寫(xiě)了這些內容,但今天是7月,根本沒(méi)有問(wèn)題. 我不必多說(shuō),只需直接交付干貨即可.
  首先談?wù)勎业男枨?
  獲取約10個(gè)正式帳戶(hù)的批文. 監視最新帖子,大概的想法是早上檢查并在下午再次檢查. 采集可用的新文章.
  為什么要使用優(yōu)采云?
  該軟件非常易于使用,具有自動(dòng)URL重復數據刪除功能. 重復的鏈接將被跳過(guò),不再使用. 此外,優(yōu)采云具有WordPress免登錄發(fā)布界面. 我一直在為小白使用它. 我已經(jīng)習慣了,很容易上手.
  解決方案選擇:
  主要關(guān)注解決官方帳戶(hù)的歷史文章網(wǎng)址,即文章列表.
  首先,我想在開(kāi)始時(shí)使用它(這也是最在線(xiàn)的教程),但是事實(shí)證明,在Sogou官方帳戶(hù)上的搜索不再顯示某個(gè)特定官方帳戶(hù)的最新文章. 據說(shuō)它將在2019年之前無(wú)法使用,騰訊已關(guān)閉該界面.
  2. 直接捕獲微信數據包,使用fildder和其他數據包捕獲工具,并與PC版微信配合捕獲官方帳戶(hù)URL. 這非常復雜. 我看了一輪教程,果斷地放棄了,這超出了我的承受能力.
  3. 使用第三方公共帳戶(hù)數據查詢(xún)平臺. 該程序可以運行. 經(jīng)過(guò)研究,我發(fā)現了三個(gè).
  1. 西瓜助手:
  2. 小寶:
  
  3. 一個(gè)同伴插件:
  
  談?wù)勊鼈兏髯缘膬?yōu)點(diǎn)和缺點(diǎn):
  西瓜助手,優(yōu)點(diǎn): 可以查詢(xún)大量的官方賬號,并且視覺(jué)更新很快. 就像普通網(wǎng)站的采集一樣,官方帳戶(hù)中的文章列表可以直接通過(guò)優(yōu)采云采集. 缺點(diǎn),收費和昂貴的批次. 普通版是每月99元.
  小寶,優(yōu)點(diǎn),免費,您可以在登錄時(shí)查看官方帳戶(hù)數據,快速更新(基本上會(huì )有一天的間隔),并且該官方帳戶(hù)收錄更多內容. 缺點(diǎn): 優(yōu)采云無(wú)法直接采集列表,它是由js算法編寫(xiě)的.
  Yiban插件,優(yōu)點(diǎn),免費,有財云可以直接采集列表. 缺點(diǎn)是,某些官方帳戶(hù)無(wú)法找到數據,更新情況就像過(guò)山車(chē),相隔一天,相隔半年.
  我還體驗了一個(gè)名為vread的平臺,地址為: . 該平臺具有部分官方帳戶(hù)內容,并且還通過(guò)監視采集了最新的官方帳戶(hù)文章. 優(yōu)采云的優(yōu)勢可以直接采集. 缺點(diǎn): 官方帳戶(hù)收錄的較少,需要您自己提交(我提交了一個(gè),在前一天晚上提交,但第二天不收錄)并收取費用. 每月12元. 盡管價(jià)格便宜,但它確實(shí)不像免費的一部分插件那樣容易使用.
  我在第三方平臺上浪費了很多時(shí)間. 西瓜助理,我已經(jīng)寫(xiě)好了優(yōu)采云站的采集規則,目前正處于篩選官方賬戶(hù)的階段. 結果,第二天,系統提示我升級我的會(huì )員資格以繼續使用它. 操我,我的努力是徒勞的. 浪費時(shí)間.
  一個(gè)合作伙伴插件,編寫(xiě)規則也很簡(jiǎn)單. 但是,我最終放棄了與官方帳戶(hù)數據更新迷相同的操作.
  小寶,這種機動(dòng)性很好. 但是它呈現的列表是由js呈現的. 優(yōu)采云無(wú)能為力. 它只能通過(guò)帶有硒文本的python運行. 該硒僅僅是驅動(dòng)瀏覽器打開(kāi)網(wǎng)頁(yè)的程序. 以這種方式捕獲的結果是js算法完成時(shí)顯示的結果.
  我知道事實(shí),但是去年我學(xué)習了python一兩個(gè)星期,看了幾節課,現在我完全忘記了. 因此,我再次學(xué)習了python,并首先在站點(diǎn)b上搜索了硒教程. 看了幾次之后,我感到不舒服. 從硬盤(pán)上,我找到了一套“ Python3 Web Crawler實(shí)用案例”,該軟件是去年由崔慶才先生下載的. 在實(shí)際的一章中有一個(gè)實(shí)際的課程: “第16類(lèi): 使用硒模擬瀏覽器獲取淘寶商品和食品信息”. 這只是完美的教程. 閱讀幾次后,我在Internet上找到了一些源代碼,然后就可以開(kāi)始工作了.
  安裝python,pycharm等工具并不會(huì )多說(shuō),新手已經(jīng)花了很多時(shí)間.
  您認為最終計劃已經(jīng)完成嗎?
  否.
  四個(gè). 這不是源于Micro Treasure的官方帳戶(hù)商品數據爬網(wǎng)的最新缺陷(沒(méi)有那天,但只有昨天). 我也想找出是否還有更直接的方法. 確實(shí)如此. 那是微信公眾號的官方運營(yíng)平臺.
  您可以在此處管理材料,插入鏈接并引用其他官方帳戶(hù). 此處的官方帳戶(hù)顯示最新數據. 可以捕獲一個(gè)小時(shí)前的文章.
  
  但是,優(yōu)采云無(wú)法在此處直接爬取列表. Python和硒仍然需要戰斗. 經(jīng)過(guò)一夜零一夜的研究.
  我終于完成了這項任務(wù).
  最終的實(shí)施計劃如下:
  微信公眾號操作平臺,獲取列表頁(yè)面網(wǎng)址,該網(wǎng)址生成一個(gè)html文件并將其保存到本地網(wǎng)站(由phpstudy構建). 然后轉到Ucai Cloud以提取這些html中的URL,然后采集一篇文章. (通過(guò)這種方式,優(yōu)采云的效果與普通網(wǎng)站的采集效果相同).
  為什么不直接使用python采集官方帳戶(hù)的目標文章?因為我的技術(shù)不到位,所以要采集特定的文章,我必須了解圖像下載和html標簽處理. 我是新手,一點(diǎn)也不,我不知道學(xué)習需要多長(cháng)時(shí)間. 此外,官方帳戶(hù)文章的發(fā)布時(shí)間由js表示. 我可以通過(guò)優(yōu)采云標簽的方法直接從硒捕獲的html信息中直接調用它.
  
  
  我最近說(shuō)過(guò): python中的Selenium確實(shí)是人工制品!從理論上講,任何東西都可以捕獲!

Pylon使用實(shí)時(shí)圖像捕獲來(lái)解釋PylonC SDK的使用過(guò)程

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 235 次瀏覽 ? 2020-08-06 05:04 ? 來(lái)自相關(guān)話(huà)題

  通常,對于硬件編程,硬件制造商將提供手冊和示例供SDK使用. 該手冊通常包括安裝和配置過(guò)程,一些基本概念的介紹,SDK的每個(gè)功能的使用,SDK的使用過(guò)程和示例(一些硬件示例直接寫(xiě)在手冊中,有些將單獨存在文件,有些同時(shí)具有). 為了使上位計算機軟件開(kāi)發(fā)人員獲得硬件主機編程任務(wù),他們應該首先閱讀并理解SDK概念,然后根據引入的SDK開(kāi)發(fā)過(guò)程閱讀SDK提供的示例,并修改相應的示例以供自己使用. . 該功能可用于查詢(xún)其用法. 一些開(kāi)發(fā)人員習慣性地記住他們的API,這既費時(shí)又費力,不建議使用. 下面主要說(shuō)明帶實(shí)時(shí)圖像采集的Basler相機的PylonC SDK的使用過(guò)程.
  使用PylonC SDK的總體流程圖如下:
  
  以下是針對不同工作要求的其中之一,常見(jiàn)的是加載相機對象和卸載相機對象. 要使用其他模塊,例如事件對象,可以相應地加載和卸載事件對象,并使用事件對象完成相關(guān)任務(wù). 進(jìn)行編程時(shí),必須計劃整個(gè)過(guò)程,尤其是在對硬件進(jìn)行編程時(shí),必須注意內存泄漏,并且之前分配的資源必須稍后釋放.
  以下是對五個(gè)主要過(guò)程的詳細分析,其中解釋了需求,并注釋了需要使用的功能
  
  加載相機對象
  卸載相機對象
  加載數據流以捕獲對象
  卸載數據流捕獲對象
  單幀或連續捕獲過(guò)程
  根據上述過(guò)程,可以實(shí)現實(shí)時(shí)圖像采集
  源代碼下載鏈接. 許多人要求我提供源代碼. 我瀏覽了之前的程序文件夾,找到了該程序. 它演示了使用Pylon SDK進(jìn)行攝像機采集的過(guò)程. 使用MIL完成界面顯示. 采集部分被封裝到一個(gè)類(lèi)中,可以直接重用. 測試相機是Basler相機. 請注意,Pylon僅完成原創(chuàng )數據的采集,使用MIL的MbufPut完成圖像數據的重組,然后MIL自動(dòng)顯示.
  ---------------------
  作者: 溫英雄 查看全部

  通常,對于硬件編程,硬件制造商將提供手冊和示例供SDK使用. 該手冊通常包括安裝和配置過(guò)程,一些基本概念的介紹,SDK的每個(gè)功能的使用,SDK的使用過(guò)程和示例(一些硬件示例直接寫(xiě)在手冊中,有些將單獨存在文件,有些同時(shí)具有). 為了使上位計算機軟件開(kāi)發(fā)人員獲得硬件主機編程任務(wù),他們應該首先閱讀并理解SDK概念,然后根據引入的SDK開(kāi)發(fā)過(guò)程閱讀SDK提供的示例,并修改相應的示例以供自己使用. . 該功能可用于查詢(xún)其用法. 一些開(kāi)發(fā)人員習慣性地記住他們的API,這既費時(shí)又費力,不建議使用. 下面主要說(shuō)明帶實(shí)時(shí)圖像采集的Basler相機的PylonC SDK的使用過(guò)程.
  使用PylonC SDK的總體流程圖如下:
  
  以下是針對不同工作要求的其中之一,常見(jiàn)的是加載相機對象和卸載相機對象. 要使用其他模塊,例如事件對象,可以相應地加載和卸載事件對象,并使用事件對象完成相關(guān)任務(wù). 進(jìn)行編程時(shí),必須計劃整個(gè)過(guò)程,尤其是在對硬件進(jìn)行編程時(shí),必須注意內存泄漏,并且之前分配的資源必須稍后釋放.
  以下是對五個(gè)主要過(guò)程的詳細分析,其中解釋了需求,并注釋了需要使用的功能
  
  加載相機對象
  卸載相機對象
  加載數據流以捕獲對象
  卸載數據流捕獲對象
  單幀或連續捕獲過(guò)程
  根據上述過(guò)程,可以實(shí)現實(shí)時(shí)圖像采集
  源代碼下載鏈接. 許多人要求我提供源代碼. 我瀏覽了之前的程序文件夾,找到了該程序. 它演示了使用Pylon SDK進(jìn)行攝像機采集的過(guò)程. 使用MIL完成界面顯示. 采集部分被封裝到一個(gè)類(lèi)中,可以直接重用. 測試相機是Basler相機. 請注意,Pylon僅完成原創(chuàng )數據的采集,使用MIL的MbufPut完成圖像數據的重組,然后MIL自動(dòng)顯示.
  ---------------------
  作者: 溫英雄

解決方案:使用LogHub進(jìn)行日志實(shí)時(shí)采集

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 344 次瀏覽 ? 2020-09-01 14:32 ? 來(lái)自相關(guān)話(huà)題

  使用LogHub實(shí)時(shí)記錄采集
  背景
  “我要訂購外賣(mài)”是基于平臺的電子商務(wù)網(wǎng)站,用戶(hù),餐廳,送貨人員等. 用戶(hù)可以在網(wǎng)頁(yè),應用程序,微信,支付寶等上下訂單;商家收到訂單后開(kāi)始處理,并自動(dòng)通知周邊快遞;快遞員將食物交付給用戶(hù).
  
  操作要求
  在操作過(guò)程中,發(fā)現了以下問(wèn)題:
  很難獲得用戶(hù). 向渠道(網(wǎng)頁(yè),微信推送)投入大量廣告費,接收一些用戶(hù),但無(wú)法判斷每個(gè)渠道的有效性,用戶(hù)常常抱怨交付緩慢,但是在哪個(gè)環(huán)節,訂單的接收,分配,處理?如何優(yōu)化?用戶(hù)操作通常會(huì )參與一些優(yōu)惠活動(dòng)(發(fā)送優(yōu)惠券),但無(wú)法獲得效果. 計劃問(wèn)題,如何幫助商家在高峰時(shí)段提前庫存?如何派遣更多快遞員到指定地區?客戶(hù)服務(wù)中,用戶(hù)反饋說(shuō)訂單失敗,用戶(hù)背后的操作是什么?系統中有錯誤嗎?數據采集難點(diǎn)
  在數據操作過(guò)程中,第一步是如何集中采集分散的日志數據,這將面臨以下挑戰:
  我們需要采集分散的外部和內部日志以進(jìn)行統一管理. 過(guò)去,這部分工作需要很多工作,但現在可以通過(guò)LogHub 采集函數進(jìn)行訪(fǎng)問(wèn).
  
  日志統一管理和配置創(chuàng )建管理日志項目項目,例如myorder
  創(chuàng )建日志存儲庫Logstore,以從不同的數據源生成日志,例如:
  如果需要清除原創(chuàng )數據和ETL,則可以創(chuàng )建一些中間結果日志存儲區
 ?。ㄓ嘘P(guān)更多操作,請參閱快速啟動(dòng)/管理控制臺)
  用戶(hù)提升日志采集
  為了獲取新用戶(hù),通常有兩種方法:
  網(wǎng)站注冊時(shí)有直接優(yōu)惠券
  掃描其他渠道的QR碼并放置優(yōu)惠券
  方法
  定義以下注冊服務(wù)器地址,并生成QR碼(傳單,網(wǎng)頁(yè))供用戶(hù)注冊和掃描. 當用戶(hù)掃描此頁(yè)面進(jìn)行注冊時(shí),他知道該用戶(hù)是通過(guò)特定來(lái)源輸入并記錄日志的.
  http://examplewebsite/login%3F ... Dkd4b
  服務(wù)器接受請求后,服務(wù)器將輸出以下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序將日志輸出到硬盤(pán),然后通過(guò)Logtail 采集應用程序通過(guò)SDK寫(xiě)入日志,請參見(jiàn)SDK服務(wù)器數據采集
  支付寶/微信公眾號編程是一種典型的Web端模式,通常有三種日志類(lèi)型:
  將練習日志寫(xiě)入本地文件,并通過(guò)Logtail配置正則表達式寫(xiě)入指定的Logstore. 日志可以在Docker中生成. 容器服務(wù)可用于集成日志服務(wù). 可以使用Java程序Log4J Appender. 寫(xiě)); Log4J Appender C#,Python,Java,PHP,C等可以使用SDK寫(xiě)入Windows服務(wù)器. 您可以使用Logstash 采集終端用戶(hù)日志訪(fǎng)問(wèn)Web / M網(wǎng)站頁(yè)面的用戶(hù)行為
  頁(yè)面用戶(hù)行為集合可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器之間的交互: 例如下訂單,登錄和注銷(xiāo). 該頁(yè)面沒(méi)有后臺服務(wù)器交互: 該請求直接在前端處理,例如滾動(dòng),關(guān)閉頁(yè)面等. 方法第一種方法可以引用服務(wù)器采集方法. 第二種方法可以使用Tracking Pixel / JS庫采集頁(yè)面行為,請參考Tracking Web界面服務(wù)器日志的操作和維護
  例如:
  不同網(wǎng)絡(luò )環(huán)境下的方法數據采集
  LogHub在每個(gè)區域提供訪(fǎng)問(wèn)點(diǎn),每個(gè)區域提供三個(gè)訪(fǎng)問(wèn)點(diǎn):
  有關(guān)更多信息,請參閱網(wǎng)絡(luò )訪(fǎng)問(wèn),始終有一種適合您.
  其他,請參閱LogHub完整采集方法. 查看日志實(shí)時(shí)消耗,涉及流計算,數據清理,數據倉庫和索引查詢(xún)等功能. 查看全部

  使用LogHub實(shí)時(shí)記錄采集
  背景
  “我要訂購外賣(mài)”是基于平臺的電子商務(wù)網(wǎng)站,用戶(hù),餐廳,送貨人員等. 用戶(hù)可以在網(wǎng)頁(yè),應用程序,微信,支付寶等上下訂單;商家收到訂單后開(kāi)始處理,并自動(dòng)通知周邊快遞;快遞員將食物交付給用戶(hù).
  
  操作要求
  在操作過(guò)程中,發(fā)現了以下問(wèn)題:
  很難獲得用戶(hù). 向渠道(網(wǎng)頁(yè),微信推送)投入大量廣告費,接收一些用戶(hù),但無(wú)法判斷每個(gè)渠道的有效性,用戶(hù)常常抱怨交付緩慢,但是在哪個(gè)環(huán)節,訂單的接收,分配,處理?如何優(yōu)化?用戶(hù)操作通常會(huì )參與一些優(yōu)惠活動(dòng)(發(fā)送優(yōu)惠券),但無(wú)法獲得效果. 計劃問(wèn)題,如何幫助商家在高峰時(shí)段提前庫存?如何派遣更多快遞員到指定地區?客戶(hù)服務(wù)中,用戶(hù)反饋說(shuō)訂單失敗,用戶(hù)背后的操作是什么?系統中有錯誤嗎?數據采集難點(diǎn)
  在數據操作過(guò)程中,第一步是如何集中采集分散的日志數據,這將面臨以下挑戰:
  我們需要采集分散的外部和內部日志以進(jìn)行統一管理. 過(guò)去,這部分工作需要很多工作,但現在可以通過(guò)LogHub 采集函數進(jìn)行訪(fǎng)問(wèn).
  
  日志統一管理和配置創(chuàng )建管理日志項目項目,例如myorder
  創(chuàng )建日志存儲庫Logstore,以從不同的數據源生成日志,例如:
  如果需要清除原創(chuàng )數據和ETL,則可以創(chuàng )建一些中間結果日志存儲區
 ?。ㄓ嘘P(guān)更多操作,請參閱快速啟動(dòng)/管理控制臺)
  用戶(hù)提升日志采集
  為了獲取新用戶(hù),通常有兩種方法:
  網(wǎng)站注冊時(shí)有直接優(yōu)惠券
  掃描其他渠道的QR碼并放置優(yōu)惠券
  方法
  定義以下注冊服務(wù)器地址,并生成QR碼(傳單,網(wǎng)頁(yè))供用戶(hù)注冊和掃描. 當用戶(hù)掃描此頁(yè)面進(jìn)行注冊時(shí),他知道該用戶(hù)是通過(guò)特定來(lái)源輸入并記錄日志的.
  http://examplewebsite/login%3F ... Dkd4b
  服務(wù)器接受請求后,服務(wù)器將輸出以下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序將日志輸出到硬盤(pán),然后通過(guò)Logtail 采集應用程序通過(guò)SDK寫(xiě)入日志,請參見(jiàn)SDK服務(wù)器數據采集
  支付寶/微信公眾號編程是一種典型的Web端模式,通常有三種日志類(lèi)型:
  將練習日志寫(xiě)入本地文件,并通過(guò)Logtail配置正則表達式寫(xiě)入指定的Logstore. 日志可以在Docker中生成. 容器服務(wù)可用于集成日志服務(wù). 可以使用Java程序Log4J Appender. 寫(xiě)); Log4J Appender C#,Python,Java,PHP,C等可以使用SDK寫(xiě)入Windows服務(wù)器. 您可以使用Logstash 采集終端用戶(hù)日志訪(fǎng)問(wèn)Web / M網(wǎng)站頁(yè)面的用戶(hù)行為
  頁(yè)面用戶(hù)行為集合可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器之間的交互: 例如下訂單,登錄和注銷(xiāo). 該頁(yè)面沒(méi)有后臺服務(wù)器交互: 該請求直接在前端處理,例如滾動(dòng),關(guān)閉頁(yè)面等. 方法第一種方法可以引用服務(wù)器采集方法. 第二種方法可以使用Tracking Pixel / JS庫采集頁(yè)面行為,請參考Tracking Web界面服務(wù)器日志的操作和維護
  例如:
  不同網(wǎng)絡(luò )環(huán)境下的方法數據采集
  LogHub在每個(gè)區域提供訪(fǎng)問(wèn)點(diǎn),每個(gè)區域提供三個(gè)訪(fǎng)問(wèn)點(diǎn):
  有關(guān)更多信息,請參閱網(wǎng)絡(luò )訪(fǎng)問(wèn),始終有一種適合您.
  其他,請參閱LogHub完整采集方法. 查看日志實(shí)時(shí)消耗,涉及流計算,數據清理,數據倉庫和索引查詢(xún)等功能.

基于anyproxy的微信公眾號文章爬取,收錄閱讀數點(diǎn)贊數

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 228 次瀏覽 ? 2020-08-27 21:23 ? 來(lái)自相關(guān)話(huà)題

  基于anyproxy的微信公眾號文章爬取,收錄閱讀數點(diǎn)贊數
  github項目地址
  錄制的視頻:點(diǎn)擊抵達
  
  基本原理AnyProxy是一個(gè)阿里開(kāi)源的HTTP代理服務(wù)器,類(lèi)似fiddler和charles,但是提供了二次開(kāi)發(fā)能力,可以編撰js代碼改變http/https懇求和響應為了爬取一個(gè)微信公眾號的全部文章,首先就是獲取全部文章,然后一篇一篇去打開(kāi)獲取文章標題,作者,閱讀數,點(diǎn)贊數(這兩個(gè)只能在微信瀏覽器獲?。┟總€(gè)微信公眾號都提供查看歷史消息的功能,點(diǎn)擊去打開(kāi)這個(gè)網(wǎng)頁(yè),不停下滾,可以查到全部發(fā)布文章。在這一步,基于anyproxy,修改了這個(gè)網(wǎng)頁(yè)html,注入一段使頁(yè)面不停往下滾動(dòng)的js腳本,當滾到頂部,就獲取了全部文章列表。 本質(zhì)上是中間人攻擊。
  獲取完全部文章的內容(包括url,標題,發(fā)布時(shí)間等等)后,下一步就是循環(huán)通知陌陌瀏覽器一個(gè)一個(gè)去打開(kāi)這種文章網(wǎng)頁(yè)。每個(gè)文章網(wǎng)頁(yè)也注入js腳本,功能是不停的檢測頁(yè)面的點(diǎn)贊數和閱讀數,檢測到,就往某服務(wù)器發(fā),后臺每成功收到一個(gè)文章的點(diǎn)贊數和閱讀數,就通知陌陌瀏覽器打開(kāi)下一個(gè)url。這里我使用了socketio,實(shí)現陌陌瀏覽器和自建的koa服務(wù)器之間的通信。
  如圖所示:
  
  獲取文章列表演示
  
  一篇一篇打開(kāi)文章鏈接
  如何運行
  第一步,一定要安裝成功anyproxy,這一步請詳盡閱讀anyproxy的官方教程,寫(xiě)的太詳盡,要保證能成功代理https,能查看到https的body內容。
  npm install
npm start
  會(huì )手動(dòng)打開(kāi)一個(gè)result.html,實(shí)時(shí)查看爬取文章的內容
  點(diǎn)擊一個(gè)微信公眾號,點(diǎn)擊查看歷史消息,之后歷史頁(yè)面會(huì )不停的滾動(dòng)究竟,滾動(dòng)完畢,就開(kāi)始一篇一篇打開(kāi)文章,爬取內容。
  
  實(shí)時(shí)結果顯示.jpg
  具體過(guò)程
  1.第一步,要獲取一個(gè)公眾號的全部歷史文章。在早已設置好anyproxy代理的真機上,查看歷史消息,這時(shí)陌陌會(huì )打開(kāi)歷史文章網(wǎng)頁(yè)。
  獲取一個(gè)html文檔:
  
  ,var msgList就是我們須要的歷史文章數據,簡(jiǎn)單正則匹配下來(lái),替代非法字符,JSON.parse轉成我們須要的格式。 基于anyproxy,我們給這個(gè)html文檔注入一段腳本,目的是使這個(gè)網(wǎng)頁(yè)不停的往下自己滾動(dòng),觸發(fā)瀏覽器去獲得更多的文章。
  var scrollKey = setInterval(function () {
window.scrollTo(0,document.body.scrollHeight);
},1000);
  當網(wǎng)頁(yè)滾究竟,再次獲取文章,這個(gè)時(shí)侯,同樣的是get懇求,但是返回了Content-Type為application/json的格式,這里同樣的方式,正則匹配找出并低格成我們須要的格式
  
  同時(shí)當can_msg_continue為0時(shí),表示早已拉到底,獲取了全部文章。
  至此,獲得了一個(gè)公眾號的全部文章,包括文章標題,作者,url。但是沒(méi)有閱讀數和點(diǎn)贊數,這須要打開(kāi)具體的文章鏈接,才能看得到。
  我們還沒(méi)獲得閱讀數和點(diǎn)贊數,接下來(lái)就是一步一步使微信瀏覽器不停地打開(kāi)具體文章,觸發(fā)陌陌瀏覽器獲取閱讀數和點(diǎn)贊數。這里使用了socket.io,讓文章頁(yè)面聯(lián)接自定義的服務(wù)器,服務(wù)器主動(dòng)通知瀏覽器下一個(gè)點(diǎn)開(kāi)的文章鏈接,這樣單向通信,一個(gè)循環(huán)才能獲取具體文章的閱讀數和點(diǎn)贊。
  socket.on('url', function (data) {
window.location = data.url;
});
  閱讀數和點(diǎn)贊可以在瀏覽器端,不停檢測dom元素是否渲染下來(lái)之后搜集發(fā)往服務(wù)器,也可以直接anyproxy檢測下來(lái)(這里我采用前一種)。
  key = setInterval(function () {
var readNum = $('#readNum3').text().trim();
if (!readNum) return;
var likeNum = $('#likeNum3').text().trim();
var postUser = $('#post-user').text().trim();
var postDate = $('#post-date').text().trim() || $('#publish_time').text().trim();
var activityName = $('#activity-name').text().trim();
var js_share_source = $('#js_share_source').attr('href');
socket.emit('crawler', {
readNum: readNum,
likeNum: likeNum,
postUser: postUser,
postDate: postDate,
activityName: activityName,
js_share_source: js_share_source
});
}, 1000); 查看全部

  基于anyproxy的微信公眾號文章爬取,收錄閱讀數點(diǎn)贊數
  github項目地址
  錄制的視頻:點(diǎn)擊抵達
  
  基本原理AnyProxy是一個(gè)阿里開(kāi)源的HTTP代理服務(wù)器,類(lèi)似fiddler和charles,但是提供了二次開(kāi)發(fā)能力,可以編撰js代碼改變http/https懇求和響應為了爬取一個(gè)微信公眾號的全部文章,首先就是獲取全部文章,然后一篇一篇去打開(kāi)獲取文章標題,作者,閱讀數,點(diǎn)贊數(這兩個(gè)只能在微信瀏覽器獲?。┟總€(gè)微信公眾號都提供查看歷史消息的功能,點(diǎn)擊去打開(kāi)這個(gè)網(wǎng)頁(yè),不停下滾,可以查到全部發(fā)布文章。在這一步,基于anyproxy,修改了這個(gè)網(wǎng)頁(yè)html,注入一段使頁(yè)面不停往下滾動(dòng)的js腳本,當滾到頂部,就獲取了全部文章列表。 本質(zhì)上是中間人攻擊。
  獲取完全部文章的內容(包括url,標題,發(fā)布時(shí)間等等)后,下一步就是循環(huán)通知陌陌瀏覽器一個(gè)一個(gè)去打開(kāi)這種文章網(wǎng)頁(yè)。每個(gè)文章網(wǎng)頁(yè)也注入js腳本,功能是不停的檢測頁(yè)面的點(diǎn)贊數和閱讀數,檢測到,就往某服務(wù)器發(fā),后臺每成功收到一個(gè)文章的點(diǎn)贊數和閱讀數,就通知陌陌瀏覽器打開(kāi)下一個(gè)url。這里我使用了socketio,實(shí)現陌陌瀏覽器和自建的koa服務(wù)器之間的通信。
  如圖所示:
  
  獲取文章列表演示
  
  一篇一篇打開(kāi)文章鏈接
  如何運行
  第一步,一定要安裝成功anyproxy,這一步請詳盡閱讀anyproxy的官方教程,寫(xiě)的太詳盡,要保證能成功代理https,能查看到https的body內容。
  npm install
npm start
  會(huì )手動(dòng)打開(kāi)一個(gè)result.html,實(shí)時(shí)查看爬取文章的內容
  點(diǎn)擊一個(gè)微信公眾號,點(diǎn)擊查看歷史消息,之后歷史頁(yè)面會(huì )不停的滾動(dòng)究竟,滾動(dòng)完畢,就開(kāi)始一篇一篇打開(kāi)文章,爬取內容。
  
  實(shí)時(shí)結果顯示.jpg
  具體過(guò)程
  1.第一步,要獲取一個(gè)公眾號的全部歷史文章。在早已設置好anyproxy代理的真機上,查看歷史消息,這時(shí)陌陌會(huì )打開(kāi)歷史文章網(wǎng)頁(yè)。
  獲取一個(gè)html文檔:
  
  ,var msgList就是我們須要的歷史文章數據,簡(jiǎn)單正則匹配下來(lái),替代非法字符,JSON.parse轉成我們須要的格式。 基于anyproxy,我們給這個(gè)html文檔注入一段腳本,目的是使這個(gè)網(wǎng)頁(yè)不停的往下自己滾動(dòng),觸發(fā)瀏覽器去獲得更多的文章。
  var scrollKey = setInterval(function () {
window.scrollTo(0,document.body.scrollHeight);
},1000);
  當網(wǎng)頁(yè)滾究竟,再次獲取文章,這個(gè)時(shí)侯,同樣的是get懇求,但是返回了Content-Type為application/json的格式,這里同樣的方式,正則匹配找出并低格成我們須要的格式
  
  同時(shí)當can_msg_continue為0時(shí),表示早已拉到底,獲取了全部文章。
  至此,獲得了一個(gè)公眾號的全部文章,包括文章標題,作者,url。但是沒(méi)有閱讀數和點(diǎn)贊數,這須要打開(kāi)具體的文章鏈接,才能看得到。
  我們還沒(méi)獲得閱讀數和點(diǎn)贊數,接下來(lái)就是一步一步使微信瀏覽器不停地打開(kāi)具體文章,觸發(fā)陌陌瀏覽器獲取閱讀數和點(diǎn)贊數。這里使用了socket.io,讓文章頁(yè)面聯(lián)接自定義的服務(wù)器,服務(wù)器主動(dòng)通知瀏覽器下一個(gè)點(diǎn)開(kāi)的文章鏈接,這樣單向通信,一個(gè)循環(huán)才能獲取具體文章的閱讀數和點(diǎn)贊。
  socket.on('url', function (data) {
window.location = data.url;
});
  閱讀數和點(diǎn)贊可以在瀏覽器端,不停檢測dom元素是否渲染下來(lái)之后搜集發(fā)往服務(wù)器,也可以直接anyproxy檢測下來(lái)(這里我采用前一種)。
  key = setInterval(function () {
var readNum = $('#readNum3').text().trim();
if (!readNum) return;
var likeNum = $('#likeNum3').text().trim();
var postUser = $('#post-user').text().trim();
var postDate = $('#post-date').text().trim() || $('#publish_time').text().trim();
var activityName = $('#activity-name').text().trim();
var js_share_source = $('#js_share_source').attr('href');
socket.emit('crawler', {
readNum: readNum,
likeNum: likeNum,
postUser: postUser,
postDate: postDate,
activityName: activityName,
js_share_source: js_share_source
});
}, 1000);

爬一爬數據采集實(shí)戰系列7「調度任務(wù)」:采集微博實(shí)時(shí)熱搜榜信息

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 413 次瀏覽 ? 2020-08-26 07:43 ? 來(lái)自相關(guān)話(huà)題

  爬一爬數據采集實(shí)戰系列7「調度任務(wù)」:采集微博實(shí)時(shí)熱搜榜信息
  本篇教程為中級實(shí)戰案例,用【調度】功能多次采集微博實(shí)時(shí)熱搜榜數據。
  ##插件安裝及菜鳥(niǎo)入門(mén)教程可以看訂閱號第一篇文章 極簡(jiǎn)易用網(wǎng)頁(yè)采集器:爬一爬數據采集實(shí)戰教程
  
  微博實(shí)時(shí)熱搜榜每10min更新一次。如果想采集某個(gè)時(shí)間段內實(shí)時(shí)熱搜榜的完整信息,需每隔十分鐘自動(dòng)運行,這樣的效率極低,不可取。
  
  實(shí)時(shí)熱搜榜的入選規則
  今天就教你們一個(gè)方式,用調度器定時(shí)采集數據。這樣,只要我們設置好調度任務(wù),讓任務(wù)手動(dòng)運行,我們就可以高枕無(wú)憂(yōu)的打鬧去了。
  本例設置了在19:00--21:00期間每隔10分鐘采集微博熱搜榜數據。
  操作步驟
  1.確保帳號已登陸,打開(kāi)須要采集的微博實(shí)時(shí)熱搜榜網(wǎng)站,點(diǎn)擊瀏覽器插件欄的“爬”字圖標,啟動(dòng)插件。
  2.點(diǎn)擊頁(yè)面上須要采集的信息。如果色調框沒(méi)有收錄所有的任務(wù)數據, 點(diǎn)擊切換按鍵,切換算法,直到選中所有的任務(wù)數據。(注:下載為js-engine)
  
  依次選定要抓取的元素
  3.先點(diǎn)擊“完成”按鈕,再點(diǎn)擊“測試”按鈕,測試采集的數據是否就是您想要的。
  
  測試數據
  4.確認測試成功后,點(diǎn)擊”OK”關(guān)閉測試窗口。填寫(xiě)任務(wù)名稱(chēng)(長(cháng)度為4-32的字符,必填),并依照個(gè)人須要更改列名。
  5.點(diǎn)擊“提交”按鈕,創(chuàng )建任務(wù)。
  
  創(chuàng )建任務(wù)
  6.任務(wù)創(chuàng )建成功后,在官網(wǎng)導航欄“任務(wù)”頁(yè)面,點(diǎn)擊”打開(kāi)任務(wù)調度器”,調度頁(yè)面便出現在瀏覽器標簽頁(yè)。
  
  打開(kāi)調度器
  7.在所創(chuàng )建的任務(wù)后點(diǎn)擊”管理”選項。
  
  打開(kāi)任務(wù)管理頁(yè)面
  8.點(diǎn)擊”調度”選項,新建調度,設置定時(shí)任務(wù)。
  
  新建調度任務(wù)
  9.根據Cron表達式,設置任務(wù)抓取頻度,如下圖所示。具體可參考”教程中心”熱門(mén)問(wèn)題中的“什么是Cron表達式”。
 ?。?注:本例設置的是 在19:00--21:00之間每隔10分抓取頁(yè)面)
  
  設置Cron表達式
  10.調度配置成功后,任務(wù)按照設置頻度手動(dòng)運行。我們可在調度管理標簽頁(yè)面,看到任務(wù)的運行狀態(tài)。(#注:在任務(wù)調度期間,該頁(yè)面不關(guān)掉。)
  
  查看調度狀態(tài)
  11.點(diǎn)擊任務(wù)”數據”選項,我們可以看見(jiàn)多批次的數據。(#注:數據從19:00開(kāi)始,每個(gè)批次間隔10分鐘)
  
  查看數據
  Tips:
 ?、俦纠螺d器為js-engine
 ?、跒楸WC數據穩定,可將頻度值大一點(diǎn),預留足夠的抓取時(shí)間。
 ?、巯肟匆曨l版調度教程,趕緊去官網(wǎng)教程中心吧。
 ?、芨紺ron表達式的一些事例:
  表達式
  釋義
  提示
  0 12 * * ?
  每天12:00
  相當于’0 12 */1 * ?’
  15 10 ? * *
  每天10:15
  相當于’15 10 * * ?’或’15 10 */1 * ?’
  * 14 * * ?
  每天14:00到14:59,每隔1分鐘
  0/5 14 * * ?
  每天14:00到14:59,每隔5分鐘
  相當于’*/5 14 * * ?’
  0-5 14 * * ?
  每天14:00到14:05,每隔1分鐘
  10,44 14 ? * 4
  每周三14:10和14:44
  15 10 15 * ?
  每月15日的10:15
  15 10 ? * 6L
  每月最后一個(gè)周日的10:15
  15 10 ? * 6#3
  每月第三個(gè)周日的10:15 查看全部

  爬一爬數據采集實(shí)戰系列7「調度任務(wù)」:采集微博實(shí)時(shí)熱搜榜信息
  本篇教程為中級實(shí)戰案例,用【調度】功能多次采集微博實(shí)時(shí)熱搜榜數據。
  ##插件安裝及菜鳥(niǎo)入門(mén)教程可以看訂閱號第一篇文章 極簡(jiǎn)易用網(wǎng)頁(yè)采集器:爬一爬數據采集實(shí)戰教程
  
  微博實(shí)時(shí)熱搜榜每10min更新一次。如果想采集某個(gè)時(shí)間段內實(shí)時(shí)熱搜榜的完整信息,需每隔十分鐘自動(dòng)運行,這樣的效率極低,不可取。
  
  實(shí)時(shí)熱搜榜的入選規則
  今天就教你們一個(gè)方式,用調度器定時(shí)采集數據。這樣,只要我們設置好調度任務(wù),讓任務(wù)手動(dòng)運行,我們就可以高枕無(wú)憂(yōu)的打鬧去了。
  本例設置了在19:00--21:00期間每隔10分鐘采集微博熱搜榜數據。
  操作步驟
  1.確保帳號已登陸,打開(kāi)須要采集的微博實(shí)時(shí)熱搜榜網(wǎng)站,點(diǎn)擊瀏覽器插件欄的“爬”字圖標,啟動(dòng)插件。
  2.點(diǎn)擊頁(yè)面上須要采集的信息。如果色調框沒(méi)有收錄所有的任務(wù)數據, 點(diǎn)擊切換按鍵,切換算法,直到選中所有的任務(wù)數據。(注:下載為js-engine)
  
  依次選定要抓取的元素
  3.先點(diǎn)擊“完成”按鈕,再點(diǎn)擊“測試”按鈕,測試采集的數據是否就是您想要的。
  
  測試數據
  4.確認測試成功后,點(diǎn)擊”OK”關(guān)閉測試窗口。填寫(xiě)任務(wù)名稱(chēng)(長(cháng)度為4-32的字符,必填),并依照個(gè)人須要更改列名。
  5.點(diǎn)擊“提交”按鈕,創(chuàng )建任務(wù)。
  
  創(chuàng )建任務(wù)
  6.任務(wù)創(chuàng )建成功后,在官網(wǎng)導航欄“任務(wù)”頁(yè)面,點(diǎn)擊”打開(kāi)任務(wù)調度器”,調度頁(yè)面便出現在瀏覽器標簽頁(yè)。
  
  打開(kāi)調度器
  7.在所創(chuàng )建的任務(wù)后點(diǎn)擊”管理”選項。
  
  打開(kāi)任務(wù)管理頁(yè)面
  8.點(diǎn)擊”調度”選項,新建調度,設置定時(shí)任務(wù)。
  
  新建調度任務(wù)
  9.根據Cron表達式,設置任務(wù)抓取頻度,如下圖所示。具體可參考”教程中心”熱門(mén)問(wèn)題中的“什么是Cron表達式”。
 ?。?注:本例設置的是 在19:00--21:00之間每隔10分抓取頁(yè)面)
  
  設置Cron表達式
  10.調度配置成功后,任務(wù)按照設置頻度手動(dòng)運行。我們可在調度管理標簽頁(yè)面,看到任務(wù)的運行狀態(tài)。(#注:在任務(wù)調度期間,該頁(yè)面不關(guān)掉。)
  
  查看調度狀態(tài)
  11.點(diǎn)擊任務(wù)”數據”選項,我們可以看見(jiàn)多批次的數據。(#注:數據從19:00開(kāi)始,每個(gè)批次間隔10分鐘)
  
  查看數據
  Tips:
 ?、俦纠螺d器為js-engine
 ?、跒楸WC數據穩定,可將頻度值大一點(diǎn),預留足夠的抓取時(shí)間。
 ?、巯肟匆曨l版調度教程,趕緊去官網(wǎng)教程中心吧。
 ?、芨紺ron表達式的一些事例:
  表達式
  釋義
  提示
  0 12 * * ?
  每天12:00
  相當于’0 12 */1 * ?’
  15 10 ? * *
  每天10:15
  相當于’15 10 * * ?’或’15 10 */1 * ?’
  * 14 * * ?
  每天14:00到14:59,每隔1分鐘
  0/5 14 * * ?
  每天14:00到14:59,每隔5分鐘
  相當于’*/5 14 * * ?’
  0-5 14 * * ?
  每天14:00到14:05,每隔1分鐘
  10,44 14 ? * 4
  每周三14:10和14:44
  15 10 15 * ?
  每月15日的10:15
  15 10 ? * 6L
  每月最后一個(gè)周日的10:15
  15 10 ? * 6#3
  每月第三個(gè)周日的10:15

無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 386 次瀏覽 ? 2020-08-20 23:19 ? 來(lái)自相關(guān)話(huà)題

  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件是一款針對B2B網(wǎng)站的企業(yè)信息進(jìn)行實(shí)時(shí)采集整理的軟件,支持定義多個(gè)條件采集數據,個(gè)性化的搜索方法使您采集的數據十分精準有效,采集的數據數組諸多,多種導入格式便捷您進(jìn)行數據管理,形成高效確切的顧客資源,讓您全面把握一手的市場(chǎng)顧客資料,是銷(xiāo)售人員開(kāi)發(fā)新顧客、企業(yè)進(jìn)行網(wǎng)路營(yíng)銷(xiāo)、開(kāi)拓市場(chǎng)查找顧客的必備神器!
  產(chǎn)品功能及特性:
  1、數據來(lái)自著(zhù)名在線(xiàn)B2B網(wǎng)站(阿里巴巴、慧聰、馬可波羅、環(huán)球貿易網(wǎng)、中國制造網(wǎng)等),來(lái)源權威、可靠、準確,讓您把握最準確的企業(yè)信息;
  2、軟件實(shí)時(shí)采集最新最活躍的信息,保證數據的時(shí)效性、有效性;
  3、多個(gè)條件精確定位準確度極高,只搜索您須要的數據名錄;
  4、搜索條件支持行業(yè)、二級行業(yè)、關(guān)鍵詞、經(jīng)營(yíng)模式、省份、城市、地區等條件搜索;
  5、數據字段齊全,收錄公司名稱(chēng)、聯(lián)系人、職務(wù)、電話(huà)、手機、郵箱、公司地址等大量數組;
  6、數據手動(dòng)除去重復,提高效率;
  7、導出格式支持txt記事本和excel表格,方便舉辦任何營(yíng)銷(xiāo)工作。
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  
  無(wú)敵企業(yè)名錄搜索軟件 B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5營(yíng)銷(xiāo)版' />
  下載 查看全部

  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  無(wú)敵企業(yè)名錄搜索軟件是一款針對B2B網(wǎng)站的企業(yè)信息進(jìn)行實(shí)時(shí)采集整理的軟件,支持定義多個(gè)條件采集數據,個(gè)性化的搜索方法使您采集的數據十分精準有效,采集的數據數組諸多,多種導入格式便捷您進(jìn)行數據管理,形成高效確切的顧客資源,讓您全面把握一手的市場(chǎng)顧客資料,是銷(xiāo)售人員開(kāi)發(fā)新顧客、企業(yè)進(jìn)行網(wǎng)路營(yíng)銷(xiāo)、開(kāi)拓市場(chǎng)查找顧客的必備神器!
  產(chǎn)品功能及特性:
  1、數據來(lái)自著(zhù)名在線(xiàn)B2B網(wǎng)站(阿里巴巴、慧聰、馬可波羅、環(huán)球貿易網(wǎng)、中國制造網(wǎng)等),來(lái)源權威、可靠、準確,讓您把握最準確的企業(yè)信息;
  2、軟件實(shí)時(shí)采集最新最活躍的信息,保證數據的時(shí)效性、有效性;
  3、多個(gè)條件精確定位準確度極高,只搜索您須要的數據名錄;
  4、搜索條件支持行業(yè)、二級行業(yè)、關(guān)鍵詞、經(jīng)營(yíng)模式、省份、城市、地區等條件搜索;
  5、數據字段齊全,收錄公司名稱(chēng)、聯(lián)系人、職務(wù)、電話(huà)、手機、郵箱、公司地址等大量數組;
  6、數據手動(dòng)除去重復,提高效率;
  7、導出格式支持txt記事本和excel表格,方便舉辦任何營(yíng)銷(xiāo)工作。
  無(wú)敵企業(yè)名錄搜索軟件B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5破解版
  
  無(wú)敵企業(yè)名錄搜索軟件 B2B網(wǎng)站企業(yè)信息實(shí)時(shí)采集V3.5營(yíng)銷(xiāo)版' />
  下載

基于springboot的溫濕度NBIOT采集實(shí)時(shí)顯示

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 378 次瀏覽 ? 2020-08-17 19:53 ? 來(lái)自相關(guān)話(huà)題

  基于springboot的溫濕度NBIOT采集實(shí)時(shí)顯示
  這個(gè)項目就是之前說(shuō)的要開(kāi)源下來(lái)的一個(gè)結業(yè)項目,是我在學(xué)院期間做的一個(gè)項目,大家假如有須要可以隨便下載,開(kāi)源一起學(xué)習才有長(cháng)足的進(jìn)步
  項目鏈接:
  Gitee項目鏈接
  演示地址:
  演示地址
  :8080
  使用1234 123登錄
  底下是Readme.md
  springboot后臺聯(lián)接立秋云介紹
  后臺基于spring boot的簡(jiǎn)單實(shí)現,前端模板使用springboot官方的折線(xiàn)圖實(shí)現溫濕度的動(dòng)態(tài)監控,注意:需要配合硬件聯(lián)接立秋云實(shí)現
  軟件構架
  軟件構架說(shuō)明
  安裝教程安裝IDEA 配置java環(huán)境,這些就不用說(shuō)了。在IDEA中 導入項目 直接選擇下載好的文件夾即可等待IDEA手動(dòng)導出項目中的須要用到的依賴(lài)使用說(shuō)明
  項目需配置mysql數據庫,localhost:3306,數據庫名為login,賬戶(hù)為root,密碼為123456,可以在application.yml中配置數據源。
  當數據庫中有login數據庫時(shí)不需要再建表,后臺使用jpa框架會(huì )手動(dòng)創(chuàng )建須要用到的數據表,此項目會(huì )創(chuàng )建兩個(gè)表,一個(gè)拿來(lái)溫濕度儲存數據,一個(gè)拿來(lái)儲存用戶(hù)
  項目只需等待手動(dòng)導出依賴(lài)文件而且配置好數據庫后即可使用
  項目中的GuYuNbiot是聯(lián)接立秋云透傳平臺的,在Gylistener中請填入自己的春分的注冊包,谷雨云的使用請移步:%E8%B0%B7%E9%9B%A8%E4%BA%91%E9%80%8F%E4%BC%A0%E5%B9%B3%E5%8F%B0%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
  項目須要用到硬件的聯(lián)動(dòng),硬件發(fā)給谷雨云以后,通過(guò)春分云平臺的透傳能夠實(shí)現后端圖表的實(shí)時(shí)更新
  項目中有許多善待改進(jìn)的功能,比如在GyRecieveThread收到數據的數據庫插入時(shí),偶爾會(huì )報null,我這兒使用了
  @PostConstruct//解決非controller類(lèi)注入為null的問(wèn)題
public void init(){
gyRecieveThread=this;
gyRecieveThread.dataService=this.dataService;
}
  如果有更好的解決辦法,可以聯(lián)系我,多謝了。
  項目說(shuō)明
  1.因為本人處在大四結業(yè)階段,還是第一次學(xué)習springboot的緣由,項目中參考了網(wǎng)上的些許不錯的代碼,如有侵害請聯(lián)系我,我會(huì )立刻刪掉。
  2.項目是springboot比較簡(jiǎn)單的應用,歡迎和我一樣的初學(xué)者學(xué)習,如果有任何不懂的也可以聯(lián)系我,一起開(kāi)源學(xué)習交流就會(huì )長(cháng)久的進(jìn)步。
  參與貢獻Fork 本庫房新建 Feat_xxx 分支遞交代碼新建 Pull Request碼云特技使用 Readme_XXX.md 來(lái)支持不同的語(yǔ)言,例如 Readme_en.md, Readme_zh.md碼云官方博客 你可以 這個(gè)地址來(lái)了解碼云上的優(yōu)秀開(kāi)源項目GVP 全稱(chēng)是碼云最有價(jià)值開(kāi)源項目,是碼云綜合評定出的優(yōu)秀開(kāi)源項目碼云官方提供的使用指南 碼云封面人物是一檔拿來(lái)展示碼云會(huì )員風(fēng)采的欄目 查看全部

  基于springboot的溫濕度NBIOT采集實(shí)時(shí)顯示
  這個(gè)項目就是之前說(shuō)的要開(kāi)源下來(lái)的一個(gè)結業(yè)項目,是我在學(xué)院期間做的一個(gè)項目,大家假如有須要可以隨便下載,開(kāi)源一起學(xué)習才有長(cháng)足的進(jìn)步
  項目鏈接:
  Gitee項目鏈接
  演示地址:
  演示地址
  :8080
  使用1234 123登錄
  底下是Readme.md
  springboot后臺聯(lián)接立秋云介紹
  后臺基于spring boot的簡(jiǎn)單實(shí)現,前端模板使用springboot官方的折線(xiàn)圖實(shí)現溫濕度的動(dòng)態(tài)監控,注意:需要配合硬件聯(lián)接立秋云實(shí)現
  軟件構架
  軟件構架說(shuō)明
  安裝教程安裝IDEA 配置java環(huán)境,這些就不用說(shuō)了。在IDEA中 導入項目 直接選擇下載好的文件夾即可等待IDEA手動(dòng)導出項目中的須要用到的依賴(lài)使用說(shuō)明
  項目需配置mysql數據庫,localhost:3306,數據庫名為login,賬戶(hù)為root,密碼為123456,可以在application.yml中配置數據源。
  當數據庫中有login數據庫時(shí)不需要再建表,后臺使用jpa框架會(huì )手動(dòng)創(chuàng )建須要用到的數據表,此項目會(huì )創(chuàng )建兩個(gè)表,一個(gè)拿來(lái)溫濕度儲存數據,一個(gè)拿來(lái)儲存用戶(hù)
  項目只需等待手動(dòng)導出依賴(lài)文件而且配置好數據庫后即可使用
  項目中的GuYuNbiot是聯(lián)接立秋云透傳平臺的,在Gylistener中請填入自己的春分的注冊包,谷雨云的使用請移步:%E8%B0%B7%E9%9B%A8%E4%BA%91%E9%80%8F%E4%BC%A0%E5%B9%B3%E5%8F%B0%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97
  項目須要用到硬件的聯(lián)動(dòng),硬件發(fā)給谷雨云以后,通過(guò)春分云平臺的透傳能夠實(shí)現后端圖表的實(shí)時(shí)更新
  項目中有許多善待改進(jìn)的功能,比如在GyRecieveThread收到數據的數據庫插入時(shí),偶爾會(huì )報null,我這兒使用了
  @PostConstruct//解決非controller類(lèi)注入為null的問(wèn)題
public void init(){
gyRecieveThread=this;
gyRecieveThread.dataService=this.dataService;
}
  如果有更好的解決辦法,可以聯(lián)系我,多謝了。
  項目說(shuō)明
  1.因為本人處在大四結業(yè)階段,還是第一次學(xué)習springboot的緣由,項目中參考了網(wǎng)上的些許不錯的代碼,如有侵害請聯(lián)系我,我會(huì )立刻刪掉。
  2.項目是springboot比較簡(jiǎn)單的應用,歡迎和我一樣的初學(xué)者學(xué)習,如果有任何不懂的也可以聯(lián)系我,一起開(kāi)源學(xué)習交流就會(huì )長(cháng)久的進(jìn)步。
  參與貢獻Fork 本庫房新建 Feat_xxx 分支遞交代碼新建 Pull Request碼云特技使用 Readme_XXX.md 來(lái)支持不同的語(yǔ)言,例如 Readme_en.md, Readme_zh.md碼云官方博客 你可以 這個(gè)地址來(lái)了解碼云上的優(yōu)秀開(kāi)源項目GVP 全稱(chēng)是碼云最有價(jià)值開(kāi)源項目,是碼云綜合評定出的優(yōu)秀開(kāi)源項目碼云官方提供的使用指南 碼云封面人物是一檔拿來(lái)展示碼云會(huì )員風(fēng)采的欄目

Python網(wǎng)路數據采集之讀取文件|第05天

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 320 次瀏覽 ? 2020-08-14 08:59 ? 來(lái)自相關(guān)話(huà)題

  User:你好我是森林
  Date:2018-04-01
  Mark:《Python網(wǎng)路數據采集》
  網(wǎng)絡(luò )采集系列文章
  Python網(wǎng)路數據采集之創(chuàng )建爬蟲(chóng)
  Python網(wǎng)路數據采集之HTML解析
  Python網(wǎng)路數據采集之開(kāi)始采集
  Python網(wǎng)路數據采集之使用API
  Python網(wǎng)路數據采集之儲存數據
  讀取文檔文檔編碼
  文檔編碼的方法一般可以依照文件的擴充名進(jìn)行判定,雖然文件擴充名并不是由編碼確定的,而是由開(kāi)發(fā)者確定的。從最底層的角度看,所有文檔都是由 0和 1 編碼而成的。例如我我們將一個(gè)后綴為png的圖片后綴改為.py。用編輯器打打開(kāi)就完全不對了。
  只要安裝了合適的庫, Python 就可以幫你處理任意類(lèi)型的文檔。純文本文件、視頻文件和圖象文件的惟一區別,就是它們的 0和1 面向用戶(hù)的轉換方法不同。
  純文本
  對于純文本的文件獲取的方法很簡(jiǎn)單,用 urlopen 獲取了網(wǎng)頁(yè)以后,我們會(huì )把它轉變成 BeautifulSoup對象。
  from urllib.request import urlopen
textPage = urlopen(
"http://www.pythonscraping.com/ ... 6quot;)
print(textPage.read())
  CSV 文件
  Python有一個(gè)標準庫對CSV文件的處理非常的友好,可以處理各種的CSV文件。文檔地址
  讀取CSV文件
  Python 的csv 庫主要是面向本地文件,就是說(shuō)你的 CSV 文件得存貯在你的筆記本上。而進(jìn)行網(wǎng)路數據采集的時(shí)侯,很多文件都是在線(xiàn)的。有幾個(gè)參考解決辦法:
  例如獲取網(wǎng)上的CSV文件,然后輸出命令行。
  from urllib.request import urlopen
from io import StringIO
import csv
data = urlopen("http://pythonscraping.com/file ... 6quot;).read().decode('ASCII','ignore')
dataFile = StringIO(data)
csvReader = csv.reader(dataFile)
for row in csvReader:
print(row)
  輸出的結果:
  ['Name', 'Year']
["Monty Python's Flying Circus", '1970']
['Another Monty Python Record', '1971']
["Monty Python's Previous Record", '1972']
['The Monty Python Matching Tie and Handkerchief', '1973']
['Monty Python Live at Drury Lane', '1974']
['An Album of the Soundtrack of the Trailer of the Film of Monty Python and the Holy Grail', '1975']
['Monty Python Live at City Center', '1977']
['The Monty Python Instant Record Collection', '1977']
["Monty Python's Life of Brian", '1979']
["Monty Python's Cotractual Obligation Album", '1980']
["Monty Python's The Meaning of Life", '1983']
['The Final Rip Off', '1987']
['Monty Python Sings', '1989']
['The Ultimate Monty Python Rip Off', '1994']
['Monty Python Sings Again', '2014']
  PDF 文件
  PDFMiner3K是一個(gè)非常好用的庫(是PDFMiner的Python 3.x移植版)。它十分靈活,可以通過(guò)命令行使用,也可以整合到代碼中。它還可以處理不同的語(yǔ)言編碼,而且對網(wǎng)路文件的處理也十分便捷。
  下載解壓后用python setup.py install完成安裝。
  模塊的源文件下載地址:
  例如可以把任意 PDF 讀成字符串,然后用 StringIO轉換成文件對象。
  from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(pdfFile):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdfFile)
device.close()
content = retstr.getvalue() retstr.close()
return content

pdfFile = urlopen("http://pythonscraping.com/page ... 6quot;)
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()
  readPDF 函數最大的用處是,如果PDF文件在筆記本里,就可以直接把 urlopen返回的對象 pdfFile 替換成普通的 open() 文件對象:
  pdfFile = open("./chapter1.pdf", 'rb')
  如果本文對你有所幫助,歡迎喜歡或則評論;如果你也對網(wǎng)路采集感興趣,可以點(diǎn)擊關(guān)注,這樣才能夠收到后續的更新。感謝您的閱讀。 查看全部

  User:你好我是森林
  Date:2018-04-01
  Mark:《Python網(wǎng)路數據采集
  網(wǎng)絡(luò )采集系列文章
  Python網(wǎng)路數據采集之創(chuàng )建爬蟲(chóng)
  Python網(wǎng)路數據采集之HTML解析
  Python網(wǎng)路數據采集之開(kāi)始采集
  Python網(wǎng)路數據采集之使用API
  Python網(wǎng)路數據采集之儲存數據
  讀取文檔文檔編碼
  文檔編碼的方法一般可以依照文件的擴充名進(jìn)行判定,雖然文件擴充名并不是由編碼確定的,而是由開(kāi)發(fā)者確定的。從最底層的角度看,所有文檔都是由 0和 1 編碼而成的。例如我我們將一個(gè)后綴為png的圖片后綴改為.py。用編輯器打打開(kāi)就完全不對了。
  只要安裝了合適的庫, Python 就可以幫你處理任意類(lèi)型的文檔。純文本文件、視頻文件和圖象文件的惟一區別,就是它們的 0和1 面向用戶(hù)的轉換方法不同。
  純文本
  對于純文本的文件獲取的方法很簡(jiǎn)單,用 urlopen 獲取了網(wǎng)頁(yè)以后,我們會(huì )把它轉變成 BeautifulSoup對象。
  from urllib.request import urlopen
textPage = urlopen(
"http://www.pythonscraping.com/ ... 6quot;)
print(textPage.read())
  CSV 文件
  Python有一個(gè)標準庫對CSV文件的處理非常的友好,可以處理各種的CSV文件。文檔地址
  讀取CSV文件
  Python 的csv 庫主要是面向本地文件,就是說(shuō)你的 CSV 文件得存貯在你的筆記本上。而進(jìn)行網(wǎng)路數據采集的時(shí)侯,很多文件都是在線(xiàn)的。有幾個(gè)參考解決辦法:
  例如獲取網(wǎng)上的CSV文件,然后輸出命令行。
  from urllib.request import urlopen
from io import StringIO
import csv
data = urlopen("http://pythonscraping.com/file ... 6quot;).read().decode('ASCII','ignore')
dataFile = StringIO(data)
csvReader = csv.reader(dataFile)
for row in csvReader:
print(row)
  輸出的結果:
  ['Name', 'Year']
["Monty Python's Flying Circus", '1970']
['Another Monty Python Record', '1971']
["Monty Python's Previous Record", '1972']
['The Monty Python Matching Tie and Handkerchief', '1973']
['Monty Python Live at Drury Lane', '1974']
['An Album of the Soundtrack of the Trailer of the Film of Monty Python and the Holy Grail', '1975']
['Monty Python Live at City Center', '1977']
['The Monty Python Instant Record Collection', '1977']
["Monty Python's Life of Brian", '1979']
["Monty Python's Cotractual Obligation Album", '1980']
["Monty Python's The Meaning of Life", '1983']
['The Final Rip Off', '1987']
['Monty Python Sings', '1989']
['The Ultimate Monty Python Rip Off', '1994']
['Monty Python Sings Again', '2014']
  PDF 文件
  PDFMiner3K是一個(gè)非常好用的庫(是PDFMiner的Python 3.x移植版)。它十分靈活,可以通過(guò)命令行使用,也可以整合到代碼中。它還可以處理不同的語(yǔ)言編碼,而且對網(wǎng)路文件的處理也十分便捷。
  下載解壓后用python setup.py install完成安裝。
  模塊的源文件下載地址:
  例如可以把任意 PDF 讀成字符串,然后用 StringIO轉換成文件對象。
  from urllib.request import urlopen
from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from io import StringIO
from io import open
def readPDF(pdfFile):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
laparams = LAParams()
device = TextConverter(rsrcmgr, retstr, laparams=laparams)
process_pdf(rsrcmgr, device, pdfFile)
device.close()
content = retstr.getvalue() retstr.close()
return content

pdfFile = urlopen("http://pythonscraping.com/page ... 6quot;)
outputString = readPDF(pdfFile)
print(outputString)
pdfFile.close()
  readPDF 函數最大的用處是,如果PDF文件在筆記本里,就可以直接把 urlopen返回的對象 pdfFile 替換成普通的 open() 文件對象:
  pdfFile = open("./chapter1.pdf", 'rb')
  如果本文對你有所幫助,歡迎喜歡或則評論;如果你也對網(wǎng)路采集感興趣,可以點(diǎn)擊關(guān)注,這樣才能夠收到后續的更新。感謝您的閱讀。

使用LogHub進(jìn)行日志實(shí)時(shí)采集-阿里云開(kāi)發(fā)者社區

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 372 次瀏覽 ? 2020-08-13 03:47 ? 來(lái)自相關(guān)話(huà)題

  背景
  “我要點(diǎn)訂餐“是一個(gè)平臺型電商網(wǎng)站,用戶(hù)、餐廳、配送員等。用戶(hù)可以在網(wǎng)頁(yè)、App、微信、支付寶等進(jìn)行下單點(diǎn)菜;商家領(lǐng)到訂單后開(kāi)始加工,并手動(dòng)通知周?chē)目爝f員;快遞員將訂餐送到用戶(hù)手中。
  
  運營(yíng)需求
  在營(yíng)運的過(guò)程中,發(fā)現了如下的問(wèn)題:
  獲取用戶(hù)難,投放一筆不小的廣告費對到渠道(網(wǎng)頁(yè)、微信推送),收貨了一些用戶(hù),但難以衡量各渠道的療效用戶(hù)時(shí)常埋怨送貨慢,但慢在哪些環(huán)節,接單、配送、加工?如何優(yōu)化?用戶(hù)營(yíng)運,經(jīng)常搞一些讓利活動(dòng)(發(fā)送優(yōu)惠券),但未能獲得療效調度問(wèn)題,如何幫助店家在高峰時(shí)提早備貨?如何調度更多的快遞員到指定區域?客服服務(wù),用戶(hù)反饋下單失敗,用戶(hù)背后的操作是哪些?系統是否有錯誤?數據采集難點(diǎn)
  在數據化營(yíng)運的過(guò)程中,第一步是怎樣將灑落日志數據集中搜集上去,其中會(huì )碰到如下挑戰:
  我們須要把飄散在外部、內部日志搜集上去,統一進(jìn)行管理。在過(guò)去這塊須要大量幾種工作,現在可以通過(guò)LogHub采集功能完成統一接入。
  
  日志統一管理、配置創(chuàng )建管理日志項目Project,例如叫myorder
  為不同數據源形成日志創(chuàng )建日志庫Logstore,例如:
  如須要對原創(chuàng )數據進(jìn)行清洗與ETL,可以創(chuàng )建一些中間結果logstore
 ?。ǜ嗖僮骺梢詤⒁?jiàn)快速開(kāi)始/管理控制臺)
  用戶(hù)推廣日志采集
  為獲取新用戶(hù),一般有2種形式:
  網(wǎng)站注冊時(shí)直接投放優(yōu)惠券
  其他渠道掃描二維碼,投放優(yōu)惠券
  做法
  定義如下注冊服務(wù)器地址,生成二維碼(傳單、網(wǎng)頁(yè))供用戶(hù)注冊?huà)呙?。用?hù)掃描該頁(yè)面注冊時(shí),就曉得用戶(hù)通過(guò)特定來(lái)源步入,并記錄日志。
  http://examplewebsite/login%3F ... Dkd4b
  當服務(wù)端接受懇求時(shí),服務(wù)器輸出如下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序輸出日志到硬碟,通過(guò)Logtail采集應用程序通過(guò)SDK寫(xiě)入,參見(jiàn)SDK服務(wù)端數據采集
  支付寶/微信公眾帳號編程是典型的Web端模式,一般會(huì )有三種類(lèi)型日志:
  做法日志講到本地文件,通過(guò)Logtail配置正則表達式講到指定LogstoreDocker中形成日志可以使用容器服務(wù)集成日志服務(wù)Java程序可以使用Log4J Appender日志不落盤(pán), LogHub Producer Library(客戶(hù)端高并發(fā)寫(xiě)入);Log4J AppenderC#、Python、Java、PHP、C等可以使用SDK寫(xiě)入Windows服務(wù)器可以使用Logstash采集終端用戶(hù)日志接入Web/M 站頁(yè)面用戶(hù)行為
  頁(yè)面用戶(hù)行為搜集可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器交互:例如下單,登陸、退出等。頁(yè)面無(wú)后臺服務(wù)器交互:請求直接在后端處理,例如滾屏,關(guān)閉頁(yè)面等。做法第一種可以參考服務(wù)端采集方法第二種可以使用Tracking Pixel/JS Library搜集頁(yè)面行為,參考Tracking Web插口服務(wù)器日志運維
  例如:
  做法不同網(wǎng)路環(huán)境下數據采集
  LogHub在各Region提供 訪(fǎng)問(wèn)點(diǎn),每個(gè)Region提供三種形式接入點(diǎn):
  更多請參見(jiàn)網(wǎng)路接入,總有一款適宜你。
  其他參見(jiàn)LogHub完整采集方式。參見(jiàn)日志實(shí)時(shí)消費,涉及流計算、數據清洗、數據庫房和索引查詢(xún)等功能。 查看全部

  背景
  “我要點(diǎn)訂餐“是一個(gè)平臺型電商網(wǎng)站,用戶(hù)、餐廳、配送員等。用戶(hù)可以在網(wǎng)頁(yè)、App、微信、支付寶等進(jìn)行下單點(diǎn)菜;商家領(lǐng)到訂單后開(kāi)始加工,并手動(dòng)通知周?chē)目爝f員;快遞員將訂餐送到用戶(hù)手中。
  
  運營(yíng)需求
  在營(yíng)運的過(guò)程中,發(fā)現了如下的問(wèn)題:
  獲取用戶(hù)難,投放一筆不小的廣告費對到渠道(網(wǎng)頁(yè)、微信推送),收貨了一些用戶(hù),但難以衡量各渠道的療效用戶(hù)時(shí)常埋怨送貨慢,但慢在哪些環(huán)節,接單、配送、加工?如何優(yōu)化?用戶(hù)營(yíng)運,經(jīng)常搞一些讓利活動(dòng)(發(fā)送優(yōu)惠券),但未能獲得療效調度問(wèn)題,如何幫助店家在高峰時(shí)提早備貨?如何調度更多的快遞員到指定區域?客服服務(wù),用戶(hù)反饋下單失敗,用戶(hù)背后的操作是哪些?系統是否有錯誤?數據采集難點(diǎn)
  在數據化營(yíng)運的過(guò)程中,第一步是怎樣將灑落日志數據集中搜集上去,其中會(huì )碰到如下挑戰:
  我們須要把飄散在外部、內部日志搜集上去,統一進(jìn)行管理。在過(guò)去這塊須要大量幾種工作,現在可以通過(guò)LogHub采集功能完成統一接入。
  
  日志統一管理、配置創(chuàng )建管理日志項目Project,例如叫myorder
  為不同數據源形成日志創(chuàng )建日志庫Logstore,例如:
  如須要對原創(chuàng )數據進(jìn)行清洗與ETL,可以創(chuàng )建一些中間結果logstore
 ?。ǜ嗖僮骺梢詤⒁?jiàn)快速開(kāi)始/管理控制臺)
  用戶(hù)推廣日志采集
  為獲取新用戶(hù),一般有2種形式:
  網(wǎng)站注冊時(shí)直接投放優(yōu)惠券
  其他渠道掃描二維碼,投放優(yōu)惠券
  做法
  定義如下注冊服務(wù)器地址,生成二維碼(傳單、網(wǎng)頁(yè))供用戶(hù)注冊?huà)呙?。用?hù)掃描該頁(yè)面注冊時(shí),就曉得用戶(hù)通過(guò)特定來(lái)源步入,并記錄日志。
  http://examplewebsite/login%3F ... Dkd4b
  當服務(wù)端接受懇求時(shí),服務(wù)器輸出如下日志:
  2016-06-20 19:00:00 e41234ab342ef034,102345,5k4d,467890
  采集方法:
  應用程序輸出日志到硬碟,通過(guò)Logtail采集應用程序通過(guò)SDK寫(xiě)入,參見(jiàn)SDK服務(wù)端數據采集
  支付寶/微信公眾帳號編程是典型的Web端模式,一般會(huì )有三種類(lèi)型日志:
  做法日志講到本地文件,通過(guò)Logtail配置正則表達式講到指定LogstoreDocker中形成日志可以使用容器服務(wù)集成日志服務(wù)Java程序可以使用Log4J Appender日志不落盤(pán), LogHub Producer Library(客戶(hù)端高并發(fā)寫(xiě)入);Log4J AppenderC#、Python、Java、PHP、C等可以使用SDK寫(xiě)入Windows服務(wù)器可以使用Logstash采集終端用戶(hù)日志接入Web/M 站頁(yè)面用戶(hù)行為
  頁(yè)面用戶(hù)行為搜集可以分為兩類(lèi):
  頁(yè)面與后臺服務(wù)器交互:例如下單,登陸、退出等。頁(yè)面無(wú)后臺服務(wù)器交互:請求直接在后端處理,例如滾屏,關(guān)閉頁(yè)面等。做法第一種可以參考服務(wù)端采集方法第二種可以使用Tracking Pixel/JS Library搜集頁(yè)面行為,參考Tracking Web插口服務(wù)器日志運維
  例如:
  做法不同網(wǎng)路環(huán)境下數據采集
  LogHub在各Region提供 訪(fǎng)問(wèn)點(diǎn),每個(gè)Region提供三種形式接入點(diǎn):
  更多請參見(jiàn)網(wǎng)路接入,總有一款適宜你。
  其他參見(jiàn)LogHub完整采集方式。參見(jiàn)日志實(shí)時(shí)消費,涉及流計算、數據清洗、數據庫房和索引查詢(xún)等功能。

實(shí)現并口數據的接收功能、以及繪圖工具進(jìn)行數據顯示

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 156 次瀏覽 ? 2020-08-11 12:58 ? 來(lái)自相關(guān)話(huà)題

  實(shí)現并口數據的接收功能、以及繪圖工具進(jìn)行數據顯示
  前言:這個(gè)小項目是自己的畢設,做的比較簡(jiǎn)單,之前記錄是pyqt的環(huán)境配置,說(shuō)實(shí)話(huà),今天忽然聽(tīng)到自己也都忘得差不多了,看來(lái)還是要好好記錄一下自己的知識。
  這個(gè)項目分為了兩個(gè)部份,其中下位機的數據采集是使用STM32L0系列的開(kāi)發(fā)板作為了主控器,溫度采集模塊是DB18B20,還有一個(gè)GSM模塊,用于發(fā)送郵件,比較簡(jiǎn)單的項目。上位機部份也就是使用pyserial模塊來(lái)進(jìn)行數據的接收,使用matplotlib模塊來(lái)進(jìn)行繪圖。
  下位機部份的代碼還在,但是用于時(shí)間關(guān)系,開(kāi)發(fā)板等東西已然送人了,所以這篇博客主要就講一下上位機的程序開(kāi)發(fā),但是為了和上一篇博客中實(shí)現的療效一樣,我去找到了一個(gè)軟件模擬下位機向PC端發(fā)送數據。
  1.模擬軟件向PC端發(fā)送數據–VSPD軟件
  找了一篇博客,收錄VSPD使用教程,放上鏈接如下:
  2.串口接收數據
  今天打算把之前的代碼用來(lái)跑一下,但是發(fā)覺(jué)出了一些小問(wèn)題,這里也記載一下,被自己蠢哭的問(wèn)題。
  問(wèn)題1:
  pyserial模塊的安裝問(wèn)題,換了環(huán)境,但是使用pip安裝,以及在pycharm中進(jìn)行安裝,都沒(méi)有成功,下載的包都是空的文件夾,其截圖如下:
  
  解決辦法,去官網(wǎng)下載壓縮包,然后解壓到你的類(lèi)庫的Lib/site-packages目錄下,然后運行命令進(jìn)行安裝;
  #files
  
  命令行安裝
  
  綜上問(wèn)題1解決
  問(wèn)題2(自己犯低級錯誤):
  
  a.串口初始化部份
  class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
### 1. 畫(huà)圖
self.my_graph_1 = MyMplCanvas()
self.left1.addWidget(self.my_graph_1)
self.t = [] ### 儲存計數
self.m = [] ### 儲存接收的數據
self.i = 0 ### 計數值
### 2. 串口部分
# 串口初始化為None
self.ser = None
# 設置窗口名稱(chēng)
self.setWindowTitle("Temperature--Serial")
# 刷新一下串口的列表
# self.refresh()
# 波特率
self.comboBox_2.addItem('115200')
self.comboBox_2.addItem('57600')
self.comboBox_2.addItem('9600')
self.comboBox_2.addItem('4800')
self.comboBox_2.addItem('2400')
self.comboBox_2.addItem('1200')
# 實(shí)例化一個(gè)定時(shí)器
self.timer = QTimer(self)
# 定時(shí)器調用讀取串口接收數據
self.timer.timeout.connect(self.recv)
# 打開(kāi)串口按鈕
self.pushButton.clicked.connect(self.open)
# 關(guān)閉串口
self.pushButton_2.clicked.connect(self.close)
# 波特率修改
self.comboBox_2.activated.connect(self.baud_modify)
# 串口號修改
self.comboBox.activated.connect(self.com_modify)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  b.數據接收及處理 查看全部

  實(shí)現并口數據的接收功能、以及繪圖工具進(jìn)行數據顯示
  前言:這個(gè)小項目是自己的畢設,做的比較簡(jiǎn)單,之前記錄是pyqt的環(huán)境配置,說(shuō)實(shí)話(huà),今天忽然聽(tīng)到自己也都忘得差不多了,看來(lái)還是要好好記錄一下自己的知識。
  這個(gè)項目分為了兩個(gè)部份,其中下位機的數據采集是使用STM32L0系列的開(kāi)發(fā)板作為了主控器,溫度采集模塊是DB18B20,還有一個(gè)GSM模塊,用于發(fā)送郵件,比較簡(jiǎn)單的項目。上位機部份也就是使用pyserial模塊來(lái)進(jìn)行數據的接收,使用matplotlib模塊來(lái)進(jìn)行繪圖。
  下位機部份的代碼還在,但是用于時(shí)間關(guān)系,開(kāi)發(fā)板等東西已然送人了,所以這篇博客主要就講一下上位機的程序開(kāi)發(fā),但是為了和上一篇博客中實(shí)現的療效一樣,我去找到了一個(gè)軟件模擬下位機向PC端發(fā)送數據。
  1.模擬軟件向PC端發(fā)送數據–VSPD軟件
  找了一篇博客,收錄VSPD使用教程,放上鏈接如下:
  2.串口接收數據
  今天打算把之前的代碼用來(lái)跑一下,但是發(fā)覺(jué)出了一些小問(wèn)題,這里也記載一下,被自己蠢哭的問(wèn)題。
  問(wèn)題1:
  pyserial模塊的安裝問(wèn)題,換了環(huán)境,但是使用pip安裝,以及在pycharm中進(jìn)行安裝,都沒(méi)有成功,下載的包都是空的文件夾,其截圖如下:
  
  解決辦法,去官網(wǎng)下載壓縮包,然后解壓到你的類(lèi)庫的Lib/site-packages目錄下,然后運行命令進(jìn)行安裝;
  #files
  
  命令行安裝
  
  綜上問(wèn)題1解決
  問(wèn)題2(自己犯低級錯誤):
  
  a.串口初始化部份
  class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.setupUi(self)
### 1. 畫(huà)圖
self.my_graph_1 = MyMplCanvas()
self.left1.addWidget(self.my_graph_1)
self.t = [] ### 儲存計數
self.m = [] ### 儲存接收的數據
self.i = 0 ### 計數值
### 2. 串口部分
# 串口初始化為None
self.ser = None
# 設置窗口名稱(chēng)
self.setWindowTitle("Temperature--Serial")
# 刷新一下串口的列表
# self.refresh()
# 波特率
self.comboBox_2.addItem('115200')
self.comboBox_2.addItem('57600')
self.comboBox_2.addItem('9600')
self.comboBox_2.addItem('4800')
self.comboBox_2.addItem('2400')
self.comboBox_2.addItem('1200')
# 實(shí)例化一個(gè)定時(shí)器
self.timer = QTimer(self)
# 定時(shí)器調用讀取串口接收數據
self.timer.timeout.connect(self.recv)
# 打開(kāi)串口按鈕
self.pushButton.clicked.connect(self.open)
# 關(guān)閉串口
self.pushButton_2.clicked.connect(self.close)
# 波特率修改
self.comboBox_2.activated.connect(self.baud_modify)
# 串口號修改
self.comboBox.activated.connect(self.com_modify)
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  b.數據接收及處理

系列文章:Kubernetes日志采集最佳實(shí)踐

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 325 次瀏覽 ? 2020-08-09 16:03 ? 來(lái)自相關(guān)話(huà)題

  前言
  上一期主要介紹Kubernetes日志輸出的一些注意事項,日志輸出最終的目的還是做統一的采集和剖析。在Kubernetes中,日志采集和普通虛擬機的方法有很大不同,相對實(shí)現難度和布署代價(jià)也略大,但若使用恰當則比傳統方法自動(dòng)化程度更高、運維代價(jià)更低。
  Kubernetes日志采集難點(diǎn)
  在Kubernetes中,日志采集相比傳統虛擬機、物理機方法要復雜好多,最根本的緣由是Kubernetes把底層異常屏蔽,提供愈發(fā)細細度的資源調度,向上提供穩定、動(dòng)態(tài)的環(huán)境。因此日志采集面對的是愈發(fā)豐富、動(dòng)態(tài)的環(huán)境,需要考慮的點(diǎn)也愈發(fā)的多。
  例如:
  對于運行時(shí)間太短的Job類(lèi)應用,從啟動(dòng)到停止只有幾秒的時(shí)間,如何保證日志采集的實(shí)時(shí)性才能跟上并且數據不丟?K8s通常推薦使用大尺寸節點(diǎn),每個(gè)節點(diǎn)可以運行10-100+的容器,如何在資源消耗盡可能低的情況下采集100+的容器?在K8s中,應用都以yaml的形式布署,而日志采集還是以手工的配置文件方式為主,如何才能使日志采集以K8s的方法進(jìn)行布署?Kubernetes傳統方法
  日志種類(lèi)
  文件、stdout、宿主機文件、journal
  文件、journal
  日志源
  業(yè)務(wù)容器、系統組件、宿主機
  業(yè)務(wù)、宿主機
  采集方式
  Agent(Sidecar、DaemonSet)、直寫(xiě)(DockerEngine、業(yè)務(wù))
  Agent、直寫(xiě)
  單機應用數
  10-100
  1-10
  應用動(dòng)態(tài)性
  高
  低
  節點(diǎn)動(dòng)態(tài)性
  高
  低
  采集部署形式
  手動(dòng)、Yaml
  手動(dòng)、自定義
  采集方式:主動(dòng) or 被動(dòng)
  日志的采集方式分為被動(dòng)采集和主動(dòng)推送兩種,在K8s中,被動(dòng)采集一般分為Sidecar和DaemonSet兩種形式,主動(dòng)推送有DockerEngine推送和業(yè)務(wù)直寫(xiě)兩種形式。
  
  總結出來(lái):DockerEngine直寫(xiě)通常不推薦;業(yè)務(wù)直寫(xiě)推薦在日志量極大的場(chǎng)景中使用;DaemonSet通常在中小型集群中使用;Sidecar推薦在超大型的集群中使用。詳細的各類(lèi)采集方式對比如下:
  DockerEngine業(yè)務(wù)直寫(xiě)DaemonSet形式Sidecar形式
  采集日志類(lèi)型
  標準輸出
  業(yè)務(wù)日志
  標準輸出+部分文件
  文件
  部署運維
  低,原生支持
  低,只需維護好配置文件即可
  一般,需維護DaemonSet
  較高,每個(gè)須要采集日志的POD都須要布署sidecar容器
  日志分類(lèi)儲存
  無(wú)法實(shí)現
  業(yè)務(wù)獨立配置
  一般,可通過(guò)容器/路徑等映射
  每個(gè)POD可單獨配置,靈活性高
  多住戶(hù)隔離
  弱
  弱,日志直寫(xiě)會(huì )和業(yè)務(wù)邏輯競爭資源
  一般,只能通過(guò)配置間隔離
  強,通過(guò)容器進(jìn)行隔離,可單獨分配資源
  支持集群規模
  本地儲存無(wú)限制,若使用syslog、fluentd會(huì )有單點(diǎn)限制
  無(wú)限制
  取決于配置數
  無(wú)限制
  資源占用
  低,docker
  engine提供
  整體最低,省去采集開(kāi)銷(xiāo)
  較低,每個(gè)節點(diǎn)運行一個(gè)容器
  較高,每個(gè)POD運行一個(gè)容器
  查詢(xún)便捷性
  低,只能grep原創(chuàng )日志
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  較高,可進(jìn)行自定義的查詢(xún)、統計
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  可定制性
  低
  高,可自由擴充
  低
  高,每個(gè)POD單獨配置
  耦合度
  高,與DockerEngine強綁定,修改須要重啟DockerEngine
  高,采集模塊更改/升級須要重新發(fā)布業(yè)務(wù)
  低,Agent可獨立升級
  一般,默認采集Agent升級對應Sidecar業(yè)務(wù)也會(huì )重啟(有一些擴充包可以支持Sidecar熱升級)
  適用場(chǎng)景
  測試、POC等非生產(chǎn)場(chǎng)景
  對性能要求極高的場(chǎng)景
  日志分類(lèi)明晰、功能較單一的集群
  大型、混合型、PAAS型集群
  日志輸出:Stdout or 文件
  和虛擬機/物理機不同,K8s的容器提供標準輸出和文件兩種形式。在容器中,標準輸出將日志直接輸出到stdout或stderr,而DockerEngine接管stdout和stderr文件描述符,將日志接收后根據DockerEngine配置的LogDriver規則進(jìn)行處理;日志復印到文件的形式和虛擬機/物理機基本類(lèi)似,只是日志可以使用不同的儲存形式,例如默認儲存、EmptyDir、HostVolume、NFS等。
  雖然使用Stdout復印日志是Docker官方推薦的方法,但你們須要注意這個(gè)推薦是基于容器只作為簡(jiǎn)單應用的場(chǎng)景,實(shí)際的業(yè)務(wù)場(chǎng)景中我們還是建議你們盡可能使用文件的形式,主要的緣由有以下幾點(diǎn):
  Stdout性能問(wèn)題,從應用輸出stdout到服務(wù)端,中間會(huì )經(jīng)過(guò)好幾個(gè)流程(例如普遍使用的JSON LogDriver):應用stdout -&gt; DockerEngine -&gt; LogDriver -&gt; 序列化成JSON -&gt; 保存到文件 -&gt; Agent采集文件 -&gt; 解析JSON -&gt; 上傳服務(wù)端。整個(gè)流程相比文件的額外開(kāi)支要多好多,在壓測時(shí),每秒10萬(wàn)行日志輸出都會(huì )額外占用DockerEngine 1個(gè)CPU核。Stdout不支持分類(lèi),即所有的輸出都混在一個(gè)流中,無(wú)法象文件一樣分類(lèi)輸出,通常一個(gè)應用中有AccessLog、ErrorLog、InterfaceLog(調用外部插口的日志)、TraceLog等,而這種日志的格式、用途不一,如果混在同一個(gè)流上將很難采集和剖析。Stdout只支持容器的主程序輸出,如果是daemon/fork形式運行的程序將難以使用stdout。文件的Dump形式支持各類(lèi)策略,例如同步/異步寫(xiě)入、緩存大小、文件輪轉策略、壓縮策略、清除策略等,相對愈發(fā)靈活。
  因此我們建議線(xiàn)上應用使用文件的形式輸出日志,Stdout只在功能單一的應用或一些K8s系統/運維組件中使用。
  CICD集成:Logging Operator
  
  Kubernetes提供了標準化的業(yè)務(wù)布署形式,可以通過(guò)yaml(K8s API)來(lái)申明路由規則、暴露服務(wù)、掛載儲存、運行業(yè)務(wù)、定義縮擴容規則等,所以Kubernetes很容易和CICD系統集成。而日志采集也是運維監控過(guò)程中的重要部份,業(yè)務(wù)上線(xiàn)后的所有日志都要進(jìn)行實(shí)時(shí)的搜集。
  原創(chuàng )的形式是在發(fā)布以后自動(dòng)去布署日志采集的邏輯,這種方法須要手工干預,違背CICD自動(dòng)化的宗旨;為了實(shí)現自動(dòng)化,有人開(kāi)始基于日志采集的API/SDK包裝一個(gè)手動(dòng)布署的服務(wù),在發(fā)布后通過(guò)CICD的webhook觸發(fā)調用,但這些方法的開(kāi)發(fā)代價(jià)很高。
  在Kubernetes中,日志最標準的集成方法是以一個(gè)新資源注冊到Kubernetes系統中,以Operator(CRD)的形式來(lái)進(jìn)行管理和維護。在這些形式下,CICD系統不需要額外的開(kāi)發(fā),只需在布署到Kubernetes系統時(shí)附加上日志相關(guān)的配置即可實(shí)現。
  Kubernetes日志采集方案
  
  早在Kubernetes出現之前,我們就開(kāi)始為容器環(huán)境開(kāi)發(fā)日志采集方案,隨著(zhù)K8s的逐步穩定,我們開(kāi)始將好多業(yè)務(wù)遷移到K8s平臺上,因此也基于之前的基礎專(zhuān)門(mén)開(kāi)發(fā)了一套K8s上的日志采集方案。主要具備的功能有:
  支持各種數據的實(shí)時(shí)采集,包括容器文件、容器Stdout、宿主機文件、Journal、Event等;支持多種采集部署方法,包括DaemonSet、Sidecar、DockerEngine LogDriver等;支持對日志數據進(jìn)行富化,包括附加Namespace、Pod、Container、Image、Node等信息;穩定、高可靠,基于阿里自研的Logtail采集Agent實(shí)現,目前全網(wǎng)已有幾百萬(wàn)的布署實(shí)例;基于CRD進(jìn)行擴充,可使用Kubernetes布署發(fā)布的形式來(lái)布署日志采集規則,與CICD完美集成。安裝日志采集組件
  目前這套采集方案早已對外開(kāi)放,我們提供了一個(gè)Helm安裝包,其中包括Logtail的DaemonSet、AliyunlogConfig的CRD申明以及CRD Controller,安裝以后才能直接使用DaemonS優(yōu)采云采集器以及CRD配置了。安裝方法如下:
  阿里云Kubernetes集群在開(kāi)通的時(shí)侯可以勾選安裝,這樣在集群創(chuàng )建的時(shí)侯會(huì )手動(dòng)安裝上述組件。如果開(kāi)通的時(shí)侯沒(méi)有安裝,則可以自動(dòng)安裝。如果是自建的Kubernetes,無(wú)論是在阿里云上自建還是在其他云或則是線(xiàn)下,也可以使用這樣采集方案,具體安裝方法參考[自建Kubernetes安裝]()。
  安裝好上述組件然后,Logtail和對應的Controller都會(huì )運行在集群中,但默認這種組件并不會(huì )采集任何日志,需要配置日志采集規則來(lái)采集指定Pod的各種日志。
  采集規則配置:環(huán)境變量 or CRD
  除了在日志服務(wù)控制臺上自動(dòng)配置之外,對于Kubernetes還額外支持兩種配置方法:環(huán)境變量和CRD。
  環(huán)境變量是自swarm時(shí)代仍然使用的配置方法,只須要在想要采集的容器環(huán)境變量上申明須要采集的數據地址即可,Logtail會(huì )手動(dòng)將這種數據采集到服務(wù)端。這種方法布署簡(jiǎn)單,學(xué)習成本低,很容易上手;但才能支持的配置規則極少,很多中級配置(例如解析方法、過(guò)濾方法、黑白名單等)都不支持,而且這些申明的方法不支持更改/刪除,每次更改雖然都是創(chuàng )建1個(gè)新的采集配置,歷史的采集配置須要自動(dòng)清除,否則會(huì )導致資源浪費。
  
  CRD配置方法是特別符合Kubernetes官方推薦的標準擴充方法,讓采集配置以K8s資源的方法進(jìn)行管理,通過(guò)向Kubernetes部署AliyunLogConfig這個(gè)特殊的CRD資源來(lái)申明須要采集的數據。例如下邊的示例就是布署一個(gè)容器標準輸出的采集,其中定義須要Stdout和Stderr都采集,并且排除環(huán)境變量中收錄COLLEXT_STDOUT_FLAG:false的容器。
  基于CRD的配置方法以Kubernetes標準擴充資源的方法進(jìn)行管理,支持配置的增刪改查完整語(yǔ)義,而且支持各類(lèi)中級配置,是我們非常推薦的采集配置方法。
  
  采集規則推薦的配置形式
  
  實(shí)際應用場(chǎng)景中,一般都是使用DaemonSet或DaemonSet與Sidecar混用形式,DaemonSet的優(yōu)勢是資源利用率高,但有一個(gè)問(wèn)題是DaemonSet的所有Logtail都共享全局配置,而單一的Logtail有配置支撐的上限,因此難以支撐應用數比較多的集群。
  上述是我們給出的推薦配置形式,核心的思想是:
  一個(gè)配置盡可能多的采集同類(lèi)數據,減少配置數,降低DaemonSet壓力;核心的應用采集要給以充分的資源,可以使用Sidecar形式;配置方法盡可能使用CRD形式;Sidecar因為每位Logtail是單獨的配置,所以沒(méi)有配置數的限制,這種比較適宜于超小型的集群使用。
  實(shí)踐1-中小型集群
  
  絕大部分Kubernetes集群都屬于中小型的,對于中小型沒(méi)有明晰的定義,一般應用數在500以?xún)?,節點(diǎn)規模1000以?xún)?,沒(méi)有職能明晰的Kubernetes平臺運維。這種場(chǎng)景應用數不會(huì )非常多,DaemonSet可以支撐所有的采集配置:
  絕大部分業(yè)務(wù)應用的數據使用DaemonS優(yōu)采云采集器形式核心應用(對于采集可靠性要求比較高,例如訂單/交易系統)使用Sidecar形式單獨采集
  實(shí)踐2-大型集群
  
  對于一些用作PAAS平臺的小型/超大型集群,一般業(yè)務(wù)在1000以上,節點(diǎn)規模也在1000以上,有專(zhuān)門(mén)的Kubernetes平臺運維人員。這種場(chǎng)景下應用數沒(méi)有限制,DaemonSet難以支持,因此必須使用Sidecar形式,整體規劃如下:
  Kubernetes平臺本身的系統組件日志、內核日志相對種類(lèi)固定,這部份日志使用DaemonS優(yōu)采云采集器,主要為平臺的運維人員提供服務(wù);各個(gè)業(yè)務(wù)的日志使用Sidecar形式采集,每個(gè)業(yè)務(wù)可以獨立設置Sidecar的采集目的地址,為業(yè)務(wù)的DevOps人員提供足夠的靈活性。
  原文鏈接 查看全部

  前言
  上一期主要介紹Kubernetes日志輸出的一些注意事項,日志輸出最終的目的還是做統一的采集和剖析。在Kubernetes中,日志采集和普通虛擬機的方法有很大不同,相對實(shí)現難度和布署代價(jià)也略大,但若使用恰當則比傳統方法自動(dòng)化程度更高、運維代價(jià)更低。
  Kubernetes日志采集難點(diǎn)
  在Kubernetes中,日志采集相比傳統虛擬機、物理機方法要復雜好多,最根本的緣由是Kubernetes把底層異常屏蔽,提供愈發(fā)細細度的資源調度,向上提供穩定、動(dòng)態(tài)的環(huán)境。因此日志采集面對的是愈發(fā)豐富、動(dòng)態(tài)的環(huán)境,需要考慮的點(diǎn)也愈發(fā)的多。
  例如:
  對于運行時(shí)間太短的Job類(lèi)應用,從啟動(dòng)到停止只有幾秒的時(shí)間,如何保證日志采集的實(shí)時(shí)性才能跟上并且數據不丟?K8s通常推薦使用大尺寸節點(diǎn),每個(gè)節點(diǎn)可以運行10-100+的容器,如何在資源消耗盡可能低的情況下采集100+的容器?在K8s中,應用都以yaml的形式布署,而日志采集還是以手工的配置文件方式為主,如何才能使日志采集以K8s的方法進(jìn)行布署?Kubernetes傳統方法
  日志種類(lèi)
  文件、stdout、宿主機文件、journal
  文件、journal
  日志源
  業(yè)務(wù)容器、系統組件、宿主機
  業(yè)務(wù)、宿主機
  采集方式
  Agent(Sidecar、DaemonSet)、直寫(xiě)(DockerEngine、業(yè)務(wù))
  Agent、直寫(xiě)
  單機應用數
  10-100
  1-10
  應用動(dòng)態(tài)性
  高
  低
  節點(diǎn)動(dòng)態(tài)性
  高
  低
  采集部署形式
  手動(dòng)、Yaml
  手動(dòng)、自定義
  采集方式:主動(dòng) or 被動(dòng)
  日志的采集方式分為被動(dòng)采集和主動(dòng)推送兩種,在K8s中,被動(dòng)采集一般分為Sidecar和DaemonSet兩種形式,主動(dòng)推送有DockerEngine推送和業(yè)務(wù)直寫(xiě)兩種形式。
  
  總結出來(lái):DockerEngine直寫(xiě)通常不推薦;業(yè)務(wù)直寫(xiě)推薦在日志量極大的場(chǎng)景中使用;DaemonSet通常在中小型集群中使用;Sidecar推薦在超大型的集群中使用。詳細的各類(lèi)采集方式對比如下:
  DockerEngine業(yè)務(wù)直寫(xiě)DaemonSet形式Sidecar形式
  采集日志類(lèi)型
  標準輸出
  業(yè)務(wù)日志
  標準輸出+部分文件
  文件
  部署運維
  低,原生支持
  低,只需維護好配置文件即可
  一般,需維護DaemonSet
  較高,每個(gè)須要采集日志的POD都須要布署sidecar容器
  日志分類(lèi)儲存
  無(wú)法實(shí)現
  業(yè)務(wù)獨立配置
  一般,可通過(guò)容器/路徑等映射
  每個(gè)POD可單獨配置,靈活性高
  多住戶(hù)隔離
  弱
  弱,日志直寫(xiě)會(huì )和業(yè)務(wù)邏輯競爭資源
  一般,只能通過(guò)配置間隔離
  強,通過(guò)容器進(jìn)行隔離,可單獨分配資源
  支持集群規模
  本地儲存無(wú)限制,若使用syslog、fluentd會(huì )有單點(diǎn)限制
  無(wú)限制
  取決于配置數
  無(wú)限制
  資源占用
  低,docker
  engine提供
  整體最低,省去采集開(kāi)銷(xiāo)
  較低,每個(gè)節點(diǎn)運行一個(gè)容器
  較高,每個(gè)POD運行一個(gè)容器
  查詢(xún)便捷性
  低,只能grep原創(chuàng )日志
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  較高,可進(jìn)行自定義的查詢(xún)、統計
  高,可依照業(yè)務(wù)特性進(jìn)行訂制
  可定制性
  低
  高,可自由擴充
  低
  高,每個(gè)POD單獨配置
  耦合度
  高,與DockerEngine強綁定,修改須要重啟DockerEngine
  高,采集模塊更改/升級須要重新發(fā)布業(yè)務(wù)
  低,Agent可獨立升級
  一般,默認采集Agent升級對應Sidecar業(yè)務(wù)也會(huì )重啟(有一些擴充包可以支持Sidecar熱升級)
  適用場(chǎng)景
  測試、POC等非生產(chǎn)場(chǎng)景
  對性能要求極高的場(chǎng)景
  日志分類(lèi)明晰、功能較單一的集群
  大型、混合型、PAAS型集群
  日志輸出:Stdout or 文件
  和虛擬機/物理機不同,K8s的容器提供標準輸出和文件兩種形式。在容器中,標準輸出將日志直接輸出到stdout或stderr,而DockerEngine接管stdout和stderr文件描述符,將日志接收后根據DockerEngine配置的LogDriver規則進(jìn)行處理;日志復印到文件的形式和虛擬機/物理機基本類(lèi)似,只是日志可以使用不同的儲存形式,例如默認儲存、EmptyDir、HostVolume、NFS等。
  雖然使用Stdout復印日志是Docker官方推薦的方法,但你們須要注意這個(gè)推薦是基于容器只作為簡(jiǎn)單應用的場(chǎng)景,實(shí)際的業(yè)務(wù)場(chǎng)景中我們還是建議你們盡可能使用文件的形式,主要的緣由有以下幾點(diǎn):
  Stdout性能問(wèn)題,從應用輸出stdout到服務(wù)端,中間會(huì )經(jīng)過(guò)好幾個(gè)流程(例如普遍使用的JSON LogDriver):應用stdout -&gt; DockerEngine -&gt; LogDriver -&gt; 序列化成JSON -&gt; 保存到文件 -&gt; Agent采集文件 -&gt; 解析JSON -&gt; 上傳服務(wù)端。整個(gè)流程相比文件的額外開(kāi)支要多好多,在壓測時(shí),每秒10萬(wàn)行日志輸出都會(huì )額外占用DockerEngine 1個(gè)CPU核。Stdout不支持分類(lèi),即所有的輸出都混在一個(gè)流中,無(wú)法象文件一樣分類(lèi)輸出,通常一個(gè)應用中有AccessLog、ErrorLog、InterfaceLog(調用外部插口的日志)、TraceLog等,而這種日志的格式、用途不一,如果混在同一個(gè)流上將很難采集和剖析。Stdout只支持容器的主程序輸出,如果是daemon/fork形式運行的程序將難以使用stdout。文件的Dump形式支持各類(lèi)策略,例如同步/異步寫(xiě)入、緩存大小、文件輪轉策略、壓縮策略、清除策略等,相對愈發(fā)靈活。
  因此我們建議線(xiàn)上應用使用文件的形式輸出日志,Stdout只在功能單一的應用或一些K8s系統/運維組件中使用。
  CICD集成:Logging Operator
  
  Kubernetes提供了標準化的業(yè)務(wù)布署形式,可以通過(guò)yaml(K8s API)來(lái)申明路由規則、暴露服務(wù)、掛載儲存、運行業(yè)務(wù)、定義縮擴容規則等,所以Kubernetes很容易和CICD系統集成。而日志采集也是運維監控過(guò)程中的重要部份,業(yè)務(wù)上線(xiàn)后的所有日志都要進(jìn)行實(shí)時(shí)的搜集。
  原創(chuàng )的形式是在發(fā)布以后自動(dòng)去布署日志采集的邏輯,這種方法須要手工干預,違背CICD自動(dòng)化的宗旨;為了實(shí)現自動(dòng)化,有人開(kāi)始基于日志采集的API/SDK包裝一個(gè)手動(dòng)布署的服務(wù),在發(fā)布后通過(guò)CICD的webhook觸發(fā)調用,但這些方法的開(kāi)發(fā)代價(jià)很高。
  在Kubernetes中,日志最標準的集成方法是以一個(gè)新資源注冊到Kubernetes系統中,以Operator(CRD)的形式來(lái)進(jìn)行管理和維護。在這些形式下,CICD系統不需要額外的開(kāi)發(fā),只需在布署到Kubernetes系統時(shí)附加上日志相關(guān)的配置即可實(shí)現。
  Kubernetes日志采集方案
  
  早在Kubernetes出現之前,我們就開(kāi)始為容器環(huán)境開(kāi)發(fā)日志采集方案,隨著(zhù)K8s的逐步穩定,我們開(kāi)始將好多業(yè)務(wù)遷移到K8s平臺上,因此也基于之前的基礎專(zhuān)門(mén)開(kāi)發(fā)了一套K8s上的日志采集方案。主要具備的功能有:
  支持各種數據的實(shí)時(shí)采集,包括容器文件、容器Stdout、宿主機文件、Journal、Event等;支持多種采集部署方法,包括DaemonSet、Sidecar、DockerEngine LogDriver等;支持對日志數據進(jìn)行富化,包括附加Namespace、Pod、Container、Image、Node等信息;穩定、高可靠,基于阿里自研的Logtail采集Agent實(shí)現,目前全網(wǎng)已有幾百萬(wàn)的布署實(shí)例;基于CRD進(jìn)行擴充,可使用Kubernetes布署發(fā)布的形式來(lái)布署日志采集規則,與CICD完美集成。安裝日志采集組件
  目前這套采集方案早已對外開(kāi)放,我們提供了一個(gè)Helm安裝包,其中包括Logtail的DaemonSet、AliyunlogConfig的CRD申明以及CRD Controller,安裝以后才能直接使用DaemonS優(yōu)采云采集器以及CRD配置了。安裝方法如下:
  阿里云Kubernetes集群在開(kāi)通的時(shí)侯可以勾選安裝,這樣在集群創(chuàng )建的時(shí)侯會(huì )手動(dòng)安裝上述組件。如果開(kāi)通的時(shí)侯沒(méi)有安裝,則可以自動(dòng)安裝。如果是自建的Kubernetes,無(wú)論是在阿里云上自建還是在其他云或則是線(xiàn)下,也可以使用這樣采集方案,具體安裝方法參考[自建Kubernetes安裝]()。
  安裝好上述組件然后,Logtail和對應的Controller都會(huì )運行在集群中,但默認這種組件并不會(huì )采集任何日志,需要配置日志采集規則來(lái)采集指定Pod的各種日志。
  采集規則配置:環(huán)境變量 or CRD
  除了在日志服務(wù)控制臺上自動(dòng)配置之外,對于Kubernetes還額外支持兩種配置方法:環(huán)境變量和CRD。
  環(huán)境變量是自swarm時(shí)代仍然使用的配置方法,只須要在想要采集的容器環(huán)境變量上申明須要采集的數據地址即可,Logtail會(huì )手動(dòng)將這種數據采集到服務(wù)端。這種方法布署簡(jiǎn)單,學(xué)習成本低,很容易上手;但才能支持的配置規則極少,很多中級配置(例如解析方法、過(guò)濾方法、黑白名單等)都不支持,而且這些申明的方法不支持更改/刪除,每次更改雖然都是創(chuàng )建1個(gè)新的采集配置,歷史的采集配置須要自動(dòng)清除,否則會(huì )導致資源浪費。
  
  CRD配置方法是特別符合Kubernetes官方推薦的標準擴充方法,讓采集配置以K8s資源的方法進(jìn)行管理,通過(guò)向Kubernetes部署AliyunLogConfig這個(gè)特殊的CRD資源來(lái)申明須要采集的數據。例如下邊的示例就是布署一個(gè)容器標準輸出的采集,其中定義須要Stdout和Stderr都采集,并且排除環(huán)境變量中收錄COLLEXT_STDOUT_FLAG:false的容器。
  基于CRD的配置方法以Kubernetes標準擴充資源的方法進(jìn)行管理,支持配置的增刪改查完整語(yǔ)義,而且支持各類(lèi)中級配置,是我們非常推薦的采集配置方法。
  
  采集規則推薦的配置形式
  
  實(shí)際應用場(chǎng)景中,一般都是使用DaemonSet或DaemonSet與Sidecar混用形式,DaemonSet的優(yōu)勢是資源利用率高,但有一個(gè)問(wèn)題是DaemonSet的所有Logtail都共享全局配置,而單一的Logtail有配置支撐的上限,因此難以支撐應用數比較多的集群。
  上述是我們給出的推薦配置形式,核心的思想是:
  一個(gè)配置盡可能多的采集同類(lèi)數據,減少配置數,降低DaemonSet壓力;核心的應用采集要給以充分的資源,可以使用Sidecar形式;配置方法盡可能使用CRD形式;Sidecar因為每位Logtail是單獨的配置,所以沒(méi)有配置數的限制,這種比較適宜于超小型的集群使用。
  實(shí)踐1-中小型集群
  
  絕大部分Kubernetes集群都屬于中小型的,對于中小型沒(méi)有明晰的定義,一般應用數在500以?xún)?,節點(diǎn)規模1000以?xún)?,沒(méi)有職能明晰的Kubernetes平臺運維。這種場(chǎng)景應用數不會(huì )非常多,DaemonSet可以支撐所有的采集配置:
  絕大部分業(yè)務(wù)應用的數據使用DaemonS優(yōu)采云采集器形式核心應用(對于采集可靠性要求比較高,例如訂單/交易系統)使用Sidecar形式單獨采集
  實(shí)踐2-大型集群
  
  對于一些用作PAAS平臺的小型/超大型集群,一般業(yè)務(wù)在1000以上,節點(diǎn)規模也在1000以上,有專(zhuān)門(mén)的Kubernetes平臺運維人員。這種場(chǎng)景下應用數沒(méi)有限制,DaemonSet難以支持,因此必須使用Sidecar形式,整體規劃如下:
  Kubernetes平臺本身的系統組件日志、內核日志相對種類(lèi)固定,這部份日志使用DaemonS優(yōu)采云采集器,主要為平臺的運維人員提供服務(wù);各個(gè)業(yè)務(wù)的日志使用Sidecar形式采集,每個(gè)業(yè)務(wù)可以獨立設置Sidecar的采集目的地址,為業(yè)務(wù)的DevOps人員提供足夠的靈活性。
  原文鏈接

一種基于分布式的輿情數據實(shí)時(shí)采集方法和系統技術(shù)方案

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 362 次瀏覽 ? 2020-08-09 15:04 ? 來(lái)自相關(guān)話(huà)題

  本發(fā)明專(zhuān)利技術(shù)公開(kāi)了一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,方法包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)并定義爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取數據;S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。本發(fā)明專(zhuān)利技術(shù)構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例,將瀏覽器訪(fǎng)問(wèn)、日志生成、數據封裝、代理設置以及隊列設置等系統核心功能封裝上去,增強系統的可擴展性和可移植性,提高代碼的可重用性和系統的可維護性。
  
  全部詳盡技術(shù)資料下載
  【技術(shù)實(shí)現步驟摘要】
  本專(zhuān)利技術(shù)涉及互聯(lián)網(wǎng)輿情數據的分布式高并發(fā)采集方法及系統,特別的涉及目標數據的高效、實(shí)時(shí)采集技術(shù)實(shí)現方式及系統,尤其涉及一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統。
  技術(shù)介紹
  輿情是在一定的社會(huì )空間內,圍繞中介性社會(huì )風(fēng)波的發(fā)生、發(fā)展和變化,民眾對社會(huì )管理者形成和持有的社會(huì )政治心態(tài)。目前,網(wǎng)絡(luò )成為反映社會(huì )輿情的主要載體之一,在輿情傳播中起著(zhù)重要的作用。而輿論危機的爆發(fā)使越來(lái)越多的人關(guān)注社會(huì )輿論的形成和發(fā)展。各級黨政機關(guān)要及時(shí)了解信息,加強輿情監控,提高輿情應對能力和在新輿論環(huán)境中的執政能力,及時(shí)化解矛盾,處理好政府和民眾的關(guān)系。企事業(yè)單位也須要關(guān)注網(wǎng)路輿情,利用市場(chǎng)已有的輿情剖析系統和服務(wù)平臺,或者人員與工具結合,掌控網(wǎng)絡(luò )輿情,輔助決策。如何從大量的網(wǎng)路數據中提取出關(guān)鍵信息,是當前技術(shù)研究的一個(gè)重點(diǎn)。傳統的通用搜索引擎作為一個(gè)輔助檢索信息的工具,成為用戶(hù)訪(fǎng)問(wèn)網(wǎng)路的入口和手冊。但是,這些通用的搜索引擎也存在著(zhù)一定的局限性,1、通用搜索引擎所返回的結果收錄大量用戶(hù)不關(guān)心的網(wǎng)頁(yè)。通用搜索引擎常常對信息濃度密集且具有一定結構的數據無(wú)能為力,不能挺好地發(fā)覺(jué)和獲取關(guān)鍵信息。2、簡(jiǎn)單的基于互聯(lián)網(wǎng)的數據采集系統,其采集方式單一,無(wú)法同時(shí)多任務(wù)執行,這就造成了數據的采集效率較低,無(wú)法滿(mǎn)足數據的實(shí)時(shí)性。3、目前的其他輿情剖析監測系統,輿情數據大部分采用離線(xiàn)處理機制,在結構上就造成了其數據必然存在一定的信噪比。而隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息更新的速率越來(lái)越快,低信噪比的輿情數據采集系統成為輿情剖析項目的急切需求。
  技術(shù)實(shí)現思路
  本專(zhuān)利技術(shù)的目的在于克服現有技術(shù)的不足,提供一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,爬取的數據可生成在線(xiàn)輿情大數據庫,為相關(guān)政府及企業(yè)用戶(hù)提供在線(xiàn)數據庫服務(wù)。本專(zhuān)利技術(shù)的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現的:一種基于分布式的輿情數據實(shí)時(shí)采集方法,它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。頁(yè)面數據分為靜態(tài)數據和動(dòng)態(tài)數據;對于靜態(tài)頁(yè)面數據,爬蟲(chóng)調用模擬瀏覽器訪(fǎng)問(wèn)方式頁(yè)面地址獲取網(wǎng)頁(yè)源數據;對于動(dòng)態(tài)數據,爬蟲(chóng)在訪(fǎng)問(wèn)頁(yè)面之前,需要通過(guò)抓包的方法找到動(dòng)態(tài)數據返回鏈接,再調用瀏覽器訪(fǎng)問(wèn)方式獲取頁(yè)面數據。將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行數據爬取,直到獲取到正文URL地址;消費者負責從正文地址隊列中取出URL數據,訪(fǎng)問(wèn)頁(yè)面獲取正文頁(yè)面內容;在此過(guò)程中,生產(chǎn)者和消費者彼此之間通過(guò)阻塞隊列來(lái)進(jìn)行通信;采用隊列設置模塊提供隊列的存取操作,并初始化隊列數據庫并完善聯(lián)接。
  所述的步驟S3包括對動(dòng)態(tài)網(wǎng)頁(yè)數據的剖析和對靜態(tài)頁(yè)面數據的剖析,其中對于靜態(tài)頁(yè)面數據使用封裝好的Xpath方式,給定數據項的路徑地址即可獲取到對應數據項;同時(shí)結合正則表達式,通過(guò)正則表達式過(guò)濾篩選數據,補充獲取XPath未能解析到的數據;系統將解析到的數據形參給事前定義好的對應的數據項;對于動(dòng)態(tài)網(wǎng)頁(yè)數據,使用JSON方式獲取字典格式的動(dòng)態(tài)網(wǎng)頁(yè)數據項。所述的步驟S4步驟包括:在數據采集之前,采用鞋廠(chǎng)設計模式,將每一類(lèi)網(wǎng)站定義好的數據項以及保留數組封裝成字典格式,并提供統一的數據插口;在數據采集完成后,根據數據源網(wǎng)站類(lèi)別,系統調用對應的封裝方式將采集到的數據封裝為對應類(lèi)的統一格式;在封裝過(guò)程中使用UUID方式為每條數據生成惟一的標識符,方便后續的檢索操作。所述的步驟S5包括:采用鞋廠(chǎng)設計模式將結果數據的儲存操作封裝為隊列方式,采集到數據然后調用隊列方式將數據輸入數據庫服務(wù)器;在數據庫服務(wù)器中分別為每一類(lèi)源數據網(wǎng)站設置對應的數據庫,在數據儲存時(shí)將數據存到對應的數據庫;根據保存數據的不同采取不同的數據庫,保存生產(chǎn)者和消費者之間的URL隊列數據。所述的步驟S6包括:采用鞋廠(chǎng)模式將日志方式封裝上去,提供統一的插口訪(fǎng)問(wèn);日志采用logging模塊給運行中的程序提供了一個(gè)標準的信息輸出插口;系統開(kāi)始運行的時(shí)侯即調用日志插口生成實(shí)例,在整個(gè)過(guò)程中記錄每位模塊的運行狀態(tài)與結果;在每一輪爬蟲(chóng)程序執行完成時(shí),將檢測結果按天生成日志文件。
  采用所述的方式的系統,所述的系統包括:數據打算模塊,用于完成源站的分類(lèi)以及目標數據項定義;更新檢測模塊,用于檢測目標數據網(wǎng)站的更新情況。數據爬取模塊,用于模擬瀏覽器環(huán)境訪(fǎng)問(wèn)源站目標頁(yè)面并將頁(yè)面數據獲取到本地;代理設置模塊,用于手動(dòng)為服務(wù)器分配IP地址。隊列設置模塊,用于負責管理阻塞URL采集隊列,以及結果數據儲存隊列,并進(jìn)行去重操作;數據解析模塊,用于通過(guò)剖析源數據,并從中解析出目標數據項;數據封裝模塊,用于將爬取到的數據項統一封裝成標準格式輸出;數據儲存模塊,用于將封裝好的數據儲存到在線(xiàn)輿情大數據庫;日志生成模塊,用于各環(huán)節檢測狀態(tài)的日志輸出。本專(zhuān)利技術(shù)的有益療效是:1. 系統構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例。將瀏覽器訪(fǎng)問(wèn),日志生成,數據封裝,代理設置以及隊列設置等系統核心功能封裝上去。增強了系統的可擴展性和可移植性,提高了代碼的可重用性和系統的可維護性
  【技術(shù)保護點(diǎn)】
  一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。
  【技術(shù)特點(diǎn)摘要】
  1.一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。2.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  3.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。4.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。5.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行...
  【專(zhuān)利技術(shù)屬性】
  技術(shù)研制人員:李平,陳雁,胡棟,代臻,劉婷,許斌,孫先,林輝,趙玲,
  申請(專(zhuān)利權)人:西南石油大學(xué),
  類(lèi)型:發(fā)明
  國別省市:四川;51
  全部詳盡技術(shù)資料下載 我是這個(gè)專(zhuān)利的主人 查看全部

  本發(fā)明專(zhuān)利技術(shù)公開(kāi)了一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,方法包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)并定義爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取數據;S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。本發(fā)明專(zhuān)利技術(shù)構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例,將瀏覽器訪(fǎng)問(wèn)、日志生成、數據封裝、代理設置以及隊列設置等系統核心功能封裝上去,增強系統的可擴展性和可移植性,提高代碼的可重用性和系統的可維護性。
  
  全部詳盡技術(shù)資料下載
  【技術(shù)實(shí)現步驟摘要】
  本專(zhuān)利技術(shù)涉及互聯(lián)網(wǎng)輿情數據的分布式高并發(fā)采集方法及系統,特別的涉及目標數據的高效、實(shí)時(shí)采集技術(shù)實(shí)現方式及系統,尤其涉及一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統。
  技術(shù)介紹
  輿情是在一定的社會(huì )空間內,圍繞中介性社會(huì )風(fēng)波的發(fā)生、發(fā)展和變化,民眾對社會(huì )管理者形成和持有的社會(huì )政治心態(tài)。目前,網(wǎng)絡(luò )成為反映社會(huì )輿情的主要載體之一,在輿情傳播中起著(zhù)重要的作用。而輿論危機的爆發(fā)使越來(lái)越多的人關(guān)注社會(huì )輿論的形成和發(fā)展。各級黨政機關(guān)要及時(shí)了解信息,加強輿情監控,提高輿情應對能力和在新輿論環(huán)境中的執政能力,及時(shí)化解矛盾,處理好政府和民眾的關(guān)系。企事業(yè)單位也須要關(guān)注網(wǎng)路輿情,利用市場(chǎng)已有的輿情剖析系統和服務(wù)平臺,或者人員與工具結合,掌控網(wǎng)絡(luò )輿情,輔助決策。如何從大量的網(wǎng)路數據中提取出關(guān)鍵信息,是當前技術(shù)研究的一個(gè)重點(diǎn)。傳統的通用搜索引擎作為一個(gè)輔助檢索信息的工具,成為用戶(hù)訪(fǎng)問(wèn)網(wǎng)路的入口和手冊。但是,這些通用的搜索引擎也存在著(zhù)一定的局限性,1、通用搜索引擎所返回的結果收錄大量用戶(hù)不關(guān)心的網(wǎng)頁(yè)。通用搜索引擎常常對信息濃度密集且具有一定結構的數據無(wú)能為力,不能挺好地發(fā)覺(jué)和獲取關(guān)鍵信息。2、簡(jiǎn)單的基于互聯(lián)網(wǎng)的數據采集系統,其采集方式單一,無(wú)法同時(shí)多任務(wù)執行,這就造成了數據的采集效率較低,無(wú)法滿(mǎn)足數據的實(shí)時(shí)性。3、目前的其他輿情剖析監測系統,輿情數據大部分采用離線(xiàn)處理機制,在結構上就造成了其數據必然存在一定的信噪比。而隨著(zhù)網(wǎng)路技術(shù)的發(fā)展,信息更新的速率越來(lái)越快,低信噪比的輿情數據采集系統成為輿情剖析項目的急切需求。
  技術(shù)實(shí)現思路
  本專(zhuān)利技術(shù)的目的在于克服現有技術(shù)的不足,提供一種基于分布式的輿情數據實(shí)時(shí)采集方法及系統,爬取的數據可生成在線(xiàn)輿情大數據庫,為相關(guān)政府及企業(yè)用戶(hù)提供在線(xiàn)數據庫服務(wù)。本專(zhuān)利技術(shù)的目的是通過(guò)以下技術(shù)方案來(lái)實(shí)現的:一種基于分布式的輿情數據實(shí)時(shí)采集方法,它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。頁(yè)面數據分為靜態(tài)數據和動(dòng)態(tài)數據;對于靜態(tài)頁(yè)面數據,爬蟲(chóng)調用模擬瀏覽器訪(fǎng)問(wèn)方式頁(yè)面地址獲取網(wǎng)頁(yè)源數據;對于動(dòng)態(tài)數據,爬蟲(chóng)在訪(fǎng)問(wèn)頁(yè)面之前,需要通過(guò)抓包的方法找到動(dòng)態(tài)數據返回鏈接,再調用瀏覽器訪(fǎng)問(wèn)方式獲取頁(yè)面數據。將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行數據爬取,直到獲取到正文URL地址;消費者負責從正文地址隊列中取出URL數據,訪(fǎng)問(wèn)頁(yè)面獲取正文頁(yè)面內容;在此過(guò)程中,生產(chǎn)者和消費者彼此之間通過(guò)阻塞隊列來(lái)進(jìn)行通信;采用隊列設置模塊提供隊列的存取操作,并初始化隊列數據庫并完善聯(lián)接。
  所述的步驟S3包括對動(dòng)態(tài)網(wǎng)頁(yè)數據的剖析和對靜態(tài)頁(yè)面數據的剖析,其中對于靜態(tài)頁(yè)面數據使用封裝好的Xpath方式,給定數據項的路徑地址即可獲取到對應數據項;同時(shí)結合正則表達式,通過(guò)正則表達式過(guò)濾篩選數據,補充獲取XPath未能解析到的數據;系統將解析到的數據形參給事前定義好的對應的數據項;對于動(dòng)態(tài)網(wǎng)頁(yè)數據,使用JSON方式獲取字典格式的動(dòng)態(tài)網(wǎng)頁(yè)數據項。所述的步驟S4步驟包括:在數據采集之前,采用鞋廠(chǎng)設計模式,將每一類(lèi)網(wǎng)站定義好的數據項以及保留數組封裝成字典格式,并提供統一的數據插口;在數據采集完成后,根據數據源網(wǎng)站類(lèi)別,系統調用對應的封裝方式將采集到的數據封裝為對應類(lèi)的統一格式;在封裝過(guò)程中使用UUID方式為每條數據生成惟一的標識符,方便后續的檢索操作。所述的步驟S5包括:采用鞋廠(chǎng)設計模式將結果數據的儲存操作封裝為隊列方式,采集到數據然后調用隊列方式將數據輸入數據庫服務(wù)器;在數據庫服務(wù)器中分別為每一類(lèi)源數據網(wǎng)站設置對應的數據庫,在數據儲存時(shí)將數據存到對應的數據庫;根據保存數據的不同采取不同的數據庫,保存生產(chǎn)者和消費者之間的URL隊列數據。所述的步驟S6包括:采用鞋廠(chǎng)模式將日志方式封裝上去,提供統一的插口訪(fǎng)問(wèn);日志采用logging模塊給運行中的程序提供了一個(gè)標準的信息輸出插口;系統開(kāi)始運行的時(shí)侯即調用日志插口生成實(shí)例,在整個(gè)過(guò)程中記錄每位模塊的運行狀態(tài)與結果;在每一輪爬蟲(chóng)程序執行完成時(shí),將檢測結果按天生成日志文件。
  采用所述的方式的系統,所述的系統包括:數據打算模塊,用于完成源站的分類(lèi)以及目標數據項定義;更新檢測模塊,用于檢測目標數據網(wǎng)站的更新情況。數據爬取模塊,用于模擬瀏覽器環(huán)境訪(fǎng)問(wèn)源站目標頁(yè)面并將頁(yè)面數據獲取到本地;代理設置模塊,用于手動(dòng)為服務(wù)器分配IP地址。隊列設置模塊,用于負責管理阻塞URL采集隊列,以及結果數據儲存隊列,并進(jìn)行去重操作;數據解析模塊,用于通過(guò)剖析源數據,并從中解析出目標數據項;數據封裝模塊,用于將爬取到的數據項統一封裝成標準格式輸出;數據儲存模塊,用于將封裝好的數據儲存到在線(xiàn)輿情大數據庫;日志生成模塊,用于各環(huán)節檢測狀態(tài)的日志輸出。本專(zhuān)利技術(shù)的有益療效是:1. 系統構架先進(jìn),通過(guò)使用工廠(chǎng)模式作為系統的主要設計模式,能夠快速生成新實(shí)例。將瀏覽器訪(fǎng)問(wèn),日志生成,數據封裝,代理設置以及隊列設置等系統核心功能封裝上去。增強了系統的可擴展性和可移植性,提高了代碼的可重用性和系統的可維護性
  【技術(shù)保護點(diǎn)】
  一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。
  【技術(shù)特點(diǎn)摘要】
  1.一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:它包括以下步驟:S1:建立輿情數據網(wǎng)站類(lèi)庫,分類(lèi)輿情數據源站,并定義每類(lèi)網(wǎng)站的爬取數據項;S2:將數據采集網(wǎng)站列表傳輸給數據采集服務(wù)器,數據采集服務(wù)器分配相應的爬蟲(chóng)以休眠的模式循環(huán)地爬取目標網(wǎng)站數據,采集過(guò)程中使用生產(chǎn)者消費者模式并發(fā)執行采集任務(wù);S3:對爬取到的源網(wǎng)頁(yè)數據進(jìn)行標簽解析,定位目標數據項位置獲取目標數據項;S4:將獲取到的結果數據項封裝成對應類(lèi)的統一格式;S5:將封裝后的數據存入對應的數據庫;S6:生成檢測日志文件。2.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S1包括以下子步驟:S11:將所有數據源站分為多類(lèi),針對每一類(lèi)網(wǎng)站采集包括網(wǎng)站的網(wǎng)頁(yè)地址、網(wǎng)頁(yè)標題、關(guān)鍵字在內的信息構建類(lèi)相關(guān)的關(guān)鍵字庫;S12:根據每類(lèi)網(wǎng)站的頁(yè)面數據特性,事先定義好要爬取的數據數組;S13:當有新的目標網(wǎng)站需要采集時(shí),獲取包括目標網(wǎng)站地址、頁(yè)面標題、頁(yè)面關(guān)鍵字在內的與關(guān)鍵字庫對應的信息,根據獲得的信息與已有的泛型數據對目標網(wǎng)站進(jìn)行分類(lèi);同時(shí)篩選出網(wǎng)站的文章列表地址,過(guò)濾包括廣告在內的與輿情數據無(wú)關(guān)的頁(yè)面,將篩選出的地址加入數據采集網(wǎng)站列表。
  3.根據權力要求1所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:所述的步驟S2包括以下子步驟:S21:將分類(lèi)后的輿情數據源網(wǎng)站以列表的形式傳給數據采集服務(wù)器,數據采集服務(wù)器將采集任務(wù)分配到多臺數據采集PC;針對每位源站,系統設置專(zhuān)門(mén)的爬蟲(chóng)進(jìn)行數據爬??;S22:在數據爬取的過(guò)程中對源網(wǎng)站進(jìn)行實(shí)時(shí)監控,系統在整個(gè)數據爬取過(guò)程中采用休眠機制循環(huán)訪(fǎng)問(wèn)網(wǎng)站頁(yè)面,休眠時(shí)間依照網(wǎng)站的數據更新速率動(dòng)態(tài)設置;當更新量達到采集閾值時(shí),爬蟲(chóng)激活進(jìn)行新一輪的數據采集;同時(shí),在每一輪數據采集完成以后,系統標示最后的采集位置,日志文件記錄本次循環(huán)共采集的數據條數,系統步入休眠狀態(tài)。4.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:在數據爬取過(guò)程中,系統首先采用鞋廠(chǎng)設計模式將模擬訪(fǎng)問(wèn)不同的瀏覽器方式封裝上去,并提供統一的實(shí)例化插口;在具體實(shí)例化的過(guò)程中,指定瀏覽器類(lèi)型名稱(chēng)即可生產(chǎn)出對應的瀏覽器訪(fǎng)問(wèn)類(lèi);爬蟲(chóng)將按照數據源站的類(lèi)型與復雜度生成對應的瀏覽器訪(fǎng)問(wèn)實(shí)例;同時(shí),代理設置模塊在瀏覽器訪(fǎng)問(wèn)過(guò)程中手動(dòng)為程序分配IP地址。5.根據權力要求1或3所述的一種基于分布式的輿情數據實(shí)時(shí)采集方法,其特點(diǎn)在于:將URL地址儲存隊列方式封裝上去,并提供統一的實(shí)例化插口;采用多級生產(chǎn)者消費者模式并發(fā)的爬取數據:一級生產(chǎn)者依據分配的數據源網(wǎng)站地址訪(fǎng)問(wèn)頁(yè)面獲取數據的一級URL地址,并將地址儲存到數據隊列當中;若當前地址頁(yè)面不是正文地址,而是正文列表地址,系統將分配二級生成者從當前地址隊列中獲取URL地址進(jìn)行...
  【專(zhuān)利技術(shù)屬性】
  技術(shù)研制人員:李平,陳雁,胡棟,代臻,劉婷,許斌,孫先,林輝,趙玲,
  申請(專(zhuān)利權)人:西南石油大學(xué),
  類(lèi)型:發(fā)明
  國別省市:四川;51
  全部詳盡技術(shù)資料下載 我是這個(gè)專(zhuān)利的主人

全網(wǎng)微博數據每日億級實(shí)時(shí)采集

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 338 次瀏覽 ? 2020-08-09 08:34 ? 來(lái)自相關(guān)話(huà)題

  實(shí)驗數據
  硬件配置
  2臺服務(wù)器,每臺的配置如下
  系統CPU顯存硬碟
  Ubuntu16.04E5-2630 v4 @ 2.20GHz * 832G1T
  抓取速率
  每臺服務(wù)器滿(mǎn)負荷運轉:
  每臺服務(wù)器啟動(dòng)50個(gè)爬蟲(chóng)進(jìn)程,兩臺共100個(gè)爬蟲(chóng)進(jìn)程
  每個(gè)進(jìn)程的抓取情況:
  可以看見(jiàn)每位進(jìn)程,每分鐘可以抓取300+頁(yè)面。那么,一天共可以抓?。?br />   300(pages/(process*min)) * 100(prcesses) * 60*24(mins/day) = 43,200,000(pages/day)
  所以三天可以抓取4.3千萬(wàn)的頁(yè)面
  如果抓取用戶(hù)個(gè)人信息,1(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 1(data/page) = 43,200,000(data/day) 4.3千萬(wàn)
  如果抓取用戶(hù)微博數據,10(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 10(data/page) = 432,000,000(data/day) 4.3億
  數據庫統計
  MongoDB IO量
  每秒4500+的數據插入量,所以三天就是4億+的數據采集入庫量
  用戶(hù)個(gè)人信息數據
  微博用戶(hù)id采用海量采集的形式,目前早已擁有5.5千萬(wàn)有效真實(shí)用戶(hù)的微博id,并且在不斷下降中
  發(fā)掘id有效id有效百分比
  97,267,43555,832,4010.574
  用戶(hù)微博數據
  實(shí)時(shí)抓取5.5千萬(wàn)+有效用戶(hù)的微博,數據統計
  微博發(fā)表日期為11.20~11.24日之間的微博
  11.2011.2111.2211.2311.24
  13,864,35918,438,46018,866,07218,143,92311,351,606
  當前數據庫總數:537,475,459 (5億)
  數據展示
  用戶(hù)數據
  微博數據 查看全部

  實(shí)驗數據
  硬件配置
  2臺服務(wù)器,每臺的配置如下
  系統CPU顯存硬碟
  Ubuntu16.04E5-2630 v4 @ 2.20GHz * 832G1T
  抓取速率
  每臺服務(wù)器滿(mǎn)負荷運轉:
  每臺服務(wù)器啟動(dòng)50個(gè)爬蟲(chóng)進(jìn)程,兩臺共100個(gè)爬蟲(chóng)進(jìn)程
  每個(gè)進(jìn)程的抓取情況:
  可以看見(jiàn)每位進(jìn)程,每分鐘可以抓取300+頁(yè)面。那么,一天共可以抓?。?br />   300(pages/(process*min)) * 100(prcesses) * 60*24(mins/day) = 43,200,000(pages/day)
  所以三天可以抓取4.3千萬(wàn)的頁(yè)面
  如果抓取用戶(hù)個(gè)人信息,1(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 1(data/page) = 43,200,000(data/day) 4.3千萬(wàn)
  如果抓取用戶(hù)微博數據,10(data/page) ,
  則三天的數據抓取量是 43,200,000(pages/day) * 10(data/page) = 432,000,000(data/day) 4.3億
  數據庫統計
  MongoDB IO量
  每秒4500+的數據插入量,所以三天就是4億+的數據采集入庫量
  用戶(hù)個(gè)人信息數據
  微博用戶(hù)id采用海量采集的形式,目前早已擁有5.5千萬(wàn)有效真實(shí)用戶(hù)的微博id,并且在不斷下降中
  發(fā)掘id有效id有效百分比
  97,267,43555,832,4010.574
  用戶(hù)微博數據
  實(shí)時(shí)抓取5.5千萬(wàn)+有效用戶(hù)的微博,數據統計
  微博發(fā)表日期為11.20~11.24日之間的微博
  11.2011.2111.2211.2311.24
  13,864,35918,438,46018,866,07218,143,92311,351,606
  當前數據庫總數:537,475,459 (5億)
  數據展示
  用戶(hù)數據
  微博數據

QQ群實(shí)時(shí)數據查詢(xún)采集器

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 570 次瀏覽 ? 2020-08-09 01:47 ? 來(lái)自相關(guān)話(huà)題

  這是QQ群組實(shí)時(shí)數據查詢(xún)采集器,它是QQ群組號碼的輔助軟件.
  軟件功能
  它可以根據關(guān)鍵字捕獲組號,根據段落編號捕獲組號和采集組,采集朋友的QQ號,支持將成員數保存為T(mén)XT,Excel格式,需要使用軟件登錄QQ帳戶(hù).
  軟件功能
  1. 根據關(guān)鍵詞采集組號: 輸入關(guān)鍵詞,省市等信息.
  2. 根據號碼段采集組號: 輸入組號段以采集組名和對應于組號的創(chuàng )建者. 僅使用TM2009進(jìn)行采集.
  3. 采集QQ號: 可以根據城市,性別,年齡和在線(xiàn)狀態(tài)采集QQ號.
  4. 采集朋友的QQ數字: 提取朋友的數字并選擇將其分組.
  5. 采集組中的會(huì )員號: 您可以采集單個(gè)組中的成員,也可以采集所有加入的組.
  6. 它支持以TXT和Excel格式保存,并可以使用靈活的保存格式模板導出為qq郵箱格式.
  軟件提示
  該軟件功能強大,易于操作,人性化的設計理念,并且操作頁(yè)面的用戶(hù)體驗非常簡(jiǎn)潔,易于使用,并且完全是傻瓜式的操作模式.
  軟件屏幕截圖
  
  相關(guān)軟件
  起點(diǎn)QQ簽名采集器: 這是起點(diǎn)QQ簽名采集器,可以一鍵自動(dòng)采集網(wǎng)絡(luò )上的QQ簽名,并支持導出到txt.
  明智的QQ采集器: 這是明智的QQ采集器,可用于批量采集QQ的軟件!可以根據地區,年齡,性別或關(guān)鍵字進(jìn)行采集! 查看全部

  這是QQ群組實(shí)時(shí)數據查詢(xún)采集器,它是QQ群組號碼的輔助軟件.
  軟件功能
  它可以根據關(guān)鍵字捕獲組號,根據段落編號捕獲組號和采集組,采集朋友的QQ號,支持將成員數保存為T(mén)XT,Excel格式,需要使用軟件登錄QQ帳戶(hù).
  軟件功能
  1. 根據關(guān)鍵詞采集組號: 輸入關(guān)鍵詞,省市等信息.
  2. 根據號碼段采集組號: 輸入組號段以采集組名和對應于組號的創(chuàng )建者. 僅使用TM2009進(jìn)行采集.
  3. 采集QQ號: 可以根據城市,性別,年齡和在線(xiàn)狀態(tài)采集QQ號.
  4. 采集朋友的QQ數字: 提取朋友的數字并選擇將其分組.
  5. 采集組中的會(huì )員號: 您可以采集單個(gè)組中的成員,也可以采集所有加入的組.
  6. 它支持以TXT和Excel格式保存,并可以使用靈活的保存格式模板導出為qq郵箱格式.
  軟件提示
  該軟件功能強大,易于操作,人性化的設計理念,并且操作頁(yè)面的用戶(hù)體驗非常簡(jiǎn)潔,易于使用,并且完全是傻瓜式的操作模式.
  軟件屏幕截圖
  
  相關(guān)軟件
  起點(diǎn)QQ簽名采集器: 這是起點(diǎn)QQ簽名采集器,可以一鍵自動(dòng)采集網(wǎng)絡(luò )上的QQ簽名,并支持導出到txt.
  明智的QQ采集器: 這是明智的QQ采集器,可用于批量采集QQ的軟件!可以根據地區,年齡,性別或關(guān)鍵字進(jìn)行采集!

FileBeat + Kafka用于實(shí)時(shí)日志采集

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 731 次瀏覽 ? 2020-08-07 08:16 ? 來(lái)自相關(guān)話(huà)題

  之前,我們其中一項業(yè)務(wù)的實(shí)時(shí)日志采集和處理架構大致如下:
  
  在日志生成端(LogServer服務(wù)器)上,已部署FlumeAgent實(shí)時(shí)監視生成的日志,然后將其發(fā)送到Kafka. 經(jīng)過(guò)觀(guān)察,每個(gè)FlumeAgent占用大量系統資源(至少占CPU的50%或更多). 對于另一項業(yè)務(wù),LogServer承受著(zhù)巨大的壓力,CPU資源特別緊張. 如果要實(shí)時(shí)采集和分析日志,則需要一個(gè)更輕量級且耗費資源較少的日志采集框架,因此我嘗試了Filebeat.
  Filebeat是使用go語(yǔ)言開(kāi)發(fā)的開(kāi)源文本日志采集器. 它重構了logstash采集器源代碼,將其安裝在日志生成服務(wù)器上以監視日志目錄或特定的日志文件,并將它們發(fā)送到kastka上的logstash,elasticsearch和. Filebeat是一種數據采集解決方案,它替代了logstash-forwarder. 原因是logstash在jvm上運行并且消耗大量服務(wù)器資源(Flume也是一樣). 由于Filebeat如此輕巧,因此不要期望它在日志采集過(guò)程中做更多的清理和轉換工作. 它僅負責一件事,即有效且可靠地傳輸日志數據. 至于清潔和轉換,您可以在此過(guò)程中進(jìn)行后續操作.
  Filebeat的官方網(wǎng)站地址是: 您可以下載Filebeat并在此地址查看文檔.
  Filebeat安裝配置
  Filebeat的安裝和配置非常簡(jiǎn)單.
  下載filebeat-5.6.3-linux-x86_64.tar.gz并將其解壓縮.
  輸入filebeat-5.6.3-linux-x86_64目錄并編輯配置文件filebeat.yml
  配置輸入并監視日志文件:
  filebeat.prospectors:
  -input_type: log
  路徑:
  -/ data / dmp / openresty / logs / dmp_intf _ *. log
  配置輸出到Kafka
  #——————————– Kafka輸出——————————–
  output.kafka:
  主機: [“ datadev1: 9092”]
  topic: lxw1234
  required_acks: 1
  PS: 假設您已經(jīng)安裝并配置了Kafka,并且已經(jīng)建立了主題.
  有關(guān)更多配置選項,請參閱官方文檔.
  需要大數據學(xué)習材料和交流學(xué)習的學(xué)生可以增加數據學(xué)習小組: 724693112有免費的材料,可以與一群學(xué)習大數據的小伙伴共享和共同努力
  文件拍開(kāi)始
  在filebeat-5.6.3-linux-x86_64目錄下,執行命令:
  ./ filebeat -e -c filebeat.yml以啟動(dòng)Filebeat.
  啟動(dòng)后,Filebeat開(kāi)始監視輸入配置中的日志文件,并將消息發(fā)送到Kafka.
  您可以在Kafka中啟動(dòng)Consumer來(lái)查看:
  ./ kafka-console-consumer.sh –bootstrap-server localhost: 9092 –topic lxw1234 –from-beginning
  Filebeat郵件格式
  在原創(chuàng )日志中,日志格式如下:
  2017-11-09T15: 18: 05 + 08: 00 |?| 127.0.0.1 |?|-|?| hy_xyz |?| 200 |?| 0.002
  Filebeat將消息封裝為JSON字符串,除了原創(chuàng )日志外,還收錄其他信息.
  
  @timestamp: 郵件發(fā)送時(shí)間
  beat: Filebeat運行主機和版本信息
  字段: 一些用戶(hù)定義的變量和值非常有用,類(lèi)似于Flume的靜態(tài)攔截器
  input_type: 輸入類(lèi)型
  消息: 原創(chuàng )日志內容
  offset: 此消息在原創(chuàng )日志文件中的偏移量
  源: 日志文件
  此外,Filebeat的CPU使用率:
  
  初步試用后,以下問(wèn)題尚待測試:
  數據可靠性: 是否存在日志數據丟失或重復發(fā)送;
  您可以自定義Filebeat的消息格式以刪除一些多余和無(wú)用的項目嗎? 查看全部

  之前,我們其中一項業(yè)務(wù)的實(shí)時(shí)日志采集和處理架構大致如下:
  
  在日志生成端(LogServer服務(wù)器)上,已部署FlumeAgent實(shí)時(shí)監視生成的日志,然后將其發(fā)送到Kafka. 經(jīng)過(guò)觀(guān)察,每個(gè)FlumeAgent占用大量系統資源(至少占CPU的50%或更多). 對于另一項業(yè)務(wù),LogServer承受著(zhù)巨大的壓力,CPU資源特別緊張. 如果要實(shí)時(shí)采集和分析日志,則需要一個(gè)更輕量級且耗費資源較少的日志采集框架,因此我嘗試了Filebeat.
  Filebeat是使用go語(yǔ)言開(kāi)發(fā)的開(kāi)源文本日志采集器. 它重構了logstash采集器源代碼,將其安裝在日志生成服務(wù)器上以監視日志目錄或特定的日志文件,并將它們發(fā)送到kastka上的logstash,elasticsearch和. Filebeat是一種數據采集解決方案,它替代了logstash-forwarder. 原因是logstash在jvm上運行并且消耗大量服務(wù)器資源(Flume也是一樣). 由于Filebeat如此輕巧,因此不要期望它在日志采集過(guò)程中做更多的清理和轉換工作. 它僅負責一件事,即有效且可靠地傳輸日志數據. 至于清潔和轉換,您可以在此過(guò)程中進(jìn)行后續操作.
  Filebeat的官方網(wǎng)站地址是: 您可以下載Filebeat并在此地址查看文檔.
  Filebeat安裝配置
  Filebeat的安裝和配置非常簡(jiǎn)單.
  下載filebeat-5.6.3-linux-x86_64.tar.gz并將其解壓縮.
  輸入filebeat-5.6.3-linux-x86_64目錄并編輯配置文件filebeat.yml
  配置輸入并監視日志文件:
  filebeat.prospectors:
  -input_type: log
  路徑:
  -/ data / dmp / openresty / logs / dmp_intf _ *. log
  配置輸出到Kafka
  #——————————– Kafka輸出——————————–
  output.kafka:
  主機: [“ datadev1: 9092”]
  topic: lxw1234
  required_acks: 1
  PS: 假設您已經(jīng)安裝并配置了Kafka,并且已經(jīng)建立了主題.
  有關(guān)更多配置選項,請參閱官方文檔.
  需要大數據學(xué)習材料和交流學(xué)習的學(xué)生可以增加數據學(xué)習小組: 724693112有免費的材料,可以與一群學(xué)習大數據的小伙伴共享和共同努力
  文件拍開(kāi)始
  在filebeat-5.6.3-linux-x86_64目錄下,執行命令:
  ./ filebeat -e -c filebeat.yml以啟動(dòng)Filebeat.
  啟動(dòng)后,Filebeat開(kāi)始監視輸入配置中的日志文件,并將消息發(fā)送到Kafka.
  您可以在Kafka中啟動(dòng)Consumer來(lái)查看:
  ./ kafka-console-consumer.sh –bootstrap-server localhost: 9092 –topic lxw1234 –from-beginning
  Filebeat郵件格式
  在原創(chuàng )日志中,日志格式如下:
  2017-11-09T15: 18: 05 + 08: 00 |?| 127.0.0.1 |?|-|?| hy_xyz |?| 200 |?| 0.002
  Filebeat將消息封裝為JSON字符串,除了原創(chuàng )日志外,還收錄其他信息.
  
  @timestamp: 郵件發(fā)送時(shí)間
  beat: Filebeat運行主機和版本信息
  字段: 一些用戶(hù)定義的變量和值非常有用,類(lèi)似于Flume的靜態(tài)攔截器
  input_type: 輸入類(lèi)型
  消息: 原創(chuàng )日志內容
  offset: 此消息在原創(chuàng )日志文件中的偏移量
  源: 日志文件
  此外,Filebeat的CPU使用率:
  
  初步試用后,以下問(wèn)題尚待測試:
  數據可靠性: 是否存在日志數據丟失或重復發(fā)送;
  您可以自定義Filebeat的消息格式以刪除一些多余和無(wú)用的項目嗎?

實(shí)時(shí)視頻IMU采集項目(1): 在Qt中使用FFmpeg庫

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 308 次瀏覽 ? 2020-08-07 08:15 ? 來(lái)自相關(guān)話(huà)題

  概述
  要實(shí)現項目中視頻流的實(shí)時(shí)傳輸和顯示,最常見(jiàn)的是編碼和解碼操作. 如果您自己實(shí)現H.264的編碼和解碼,則將花費大量時(shí)間和精力. 因此,通常使用開(kāi)源H.264編解碼器. 所謂的編解碼器是用于實(shí)現編碼和解碼,輸入原創(chuàng )數據流以及輸出H.264編碼流的代碼.
  在Ubuntu16.04下安裝FFmpeg
  首先在官方網(wǎng)站上下載最新的FFmpeg壓縮包源代碼,然后使用以下命令解壓縮:
  $ tar xvf ffmpeg-3.4.2.tar.bz2
  然后進(jìn)入解壓縮的文件夾以查看安裝步驟:
  $ cd ffmpeg-3.4.2
$ cat INSTALL.md
  顯示內容如下:
  安裝FFmpeg: 輸入./configure創(chuàng )建配置. 配置列表
  通過(guò)運行configure --help打印
  選項.
  可以從與FFmpeg源不同的目錄中啟動(dòng)
  configure,以在樹(shù)外構建對象. 為此,請在啟動(dòng)配置時(shí)使用絕對路徑,例如/ ffmpegdir / ffmpeg / configure. 然后鍵入make來(lái)構建FFmpeg. 需要GNU Make 3.81或更高版本. 鍵入make install以安裝您構建的所有二進(jìn)制文件和庫.
  注意
  默認情況下,非系統依賴(lài)項(例如libx264,libvpx)處于禁用狀態(tài).
  請按照上述步驟進(jìn)行安裝:
  $ ./configure --prefix=/home/string/ffmpeg3.4.2 --enable-shared --disable-static
  提醒: 找不到Yasm / nasm或太舊. 使用–disable-yasm進(jìn)行嚴重破壞的構建.
  發(fā)現未安裝yasm,因此請安裝yasm:
  $ sudo apt-get install yasm
  安裝后,重新執行上述第一步以生成配置文件
  $ make
  $ make install
# 安裝后,查看ffmpeg版本
cd ~/ffmpeg3.4.2/bin
./ffmpeg -version
  安裝成功.
  Qt導入FFmpeg庫
  首先創(chuàng )建一個(gè)新的Qt項目,默認情況下每個(gè)人都會(huì )知道這一點(diǎn). 下一步是根據先前的安裝目錄配置Qt pro文件. 如下圖所示:
  
  核心是添加FFmpeg庫目錄和庫文件路徑信息.
  INCLUDEPATH += /home/string/ffmpeg3.4.2/include
LIBS += -L /home/string/ffmpeg3.4.2/lib -lavcodec -lswresample -lavutil -lavformat -lswscale
  下一步是修改main.cpp文件,以測試FFmpeg文件是否成功導入.
<p># main.cpp
#include "mainwidget.h"
#include
#include
using namespace std;
// 由于建立的是C++工程,編譯時(shí)使用的是C++編譯器編譯,
// 而FFmpeg是C的庫,因此這里需要加上extern "C",否則會(huì )提示各種未定義
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libswresample/swresample.h"
#include "libavdevice/avdevice.h"
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWidget w;
w.show();
cout 查看全部

  概述
  要實(shí)現項目中視頻流的實(shí)時(shí)傳輸和顯示,最常見(jiàn)的是編碼和解碼操作. 如果您自己實(shí)現H.264的編碼和解碼,則將花費大量時(shí)間和精力. 因此,通常使用開(kāi)源H.264編解碼器. 所謂的編解碼器是用于實(shí)現編碼和解碼,輸入原創(chuàng )數據流以及輸出H.264編碼流的代碼.
  在Ubuntu16.04下安裝FFmpeg
  首先在官方網(wǎng)站上下載最新的FFmpeg壓縮包源代碼,然后使用以下命令解壓縮:
  $ tar xvf ffmpeg-3.4.2.tar.bz2
  然后進(jìn)入解壓縮的文件夾以查看安裝步驟:
  $ cd ffmpeg-3.4.2
$ cat INSTALL.md
  顯示內容如下:
  安裝FFmpeg: 輸入./configure創(chuàng )建配置. 配置列表
  通過(guò)運行configure --help打印
  選項.
  可以從與FFmpeg源不同的目錄中啟動(dòng)
  configure,以在樹(shù)外構建對象. 為此,請在啟動(dòng)配置時(shí)使用絕對路徑,例如/ ffmpegdir / ffmpeg / configure. 然后鍵入make來(lái)構建FFmpeg. 需要GNU Make 3.81或更高版本. 鍵入make install以安裝您構建的所有二進(jìn)制文件和庫.
  注意
  默認情況下,非系統依賴(lài)項(例如libx264,libvpx)處于禁用狀態(tài).
  請按照上述步驟進(jìn)行安裝:
  $ ./configure --prefix=/home/string/ffmpeg3.4.2 --enable-shared --disable-static
  提醒: 找不到Yasm / nasm或太舊. 使用–disable-yasm進(jìn)行嚴重破壞的構建.
  發(fā)現未安裝yasm,因此請安裝yasm:
  $ sudo apt-get install yasm
  安裝后,重新執行上述第一步以生成配置文件
  $ make
  $ make install
# 安裝后,查看ffmpeg版本
cd ~/ffmpeg3.4.2/bin
./ffmpeg -version
  安裝成功.
  Qt導入FFmpeg庫
  首先創(chuàng )建一個(gè)新的Qt項目,默認情況下每個(gè)人都會(huì )知道這一點(diǎn). 下一步是根據先前的安裝目錄配置Qt pro文件. 如下圖所示:
  
  核心是添加FFmpeg庫目錄和庫文件路徑信息.
  INCLUDEPATH += /home/string/ffmpeg3.4.2/include
LIBS += -L /home/string/ffmpeg3.4.2/lib -lavcodec -lswresample -lavutil -lavformat -lswscale
  下一步是修改main.cpp文件,以測試FFmpeg文件是否成功導入.
<p># main.cpp
#include "mainwidget.h"
#include
#include
using namespace std;
// 由于建立的是C++工程,編譯時(shí)使用的是C++編譯器編譯,
// 而FFmpeg是C的庫,因此這里需要加上extern "C",否則會(huì )提示各種未定義
extern "C"
{
#include "libavcodec/avcodec.h"
#include "libavformat/avformat.h"
#include "libavfilter/avfilter.h"
#include "libswresample/swresample.h"
#include "libavdevice/avdevice.h"
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWidget w;
w.show();
cout

[正版]采集所有者信息采集軟件企業(yè)目錄實(shí)時(shí)所有者信息采集軟件

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 306 次瀏覽 ? 2020-08-07 03:15 ? 來(lái)自相關(guān)話(huà)題

  [正版]采集所有者信息采集軟件企業(yè)目錄實(shí)時(shí)所有者信息采集軟件
  [Jigu客房新聞搜索營(yíng)銷(xiāo)軟件]屬于“ Jike營(yíng)銷(xiāo)軟件”系列. 該軟件是專(zhuān)業(yè)的所有者搜索軟件和功能強大的所有者信息搜索和采集軟件. 它可以自動(dòng)采集最新的所有者目錄,可以幫助您快速識別目標客戶(hù),進(jìn)行充分的市場(chǎng)研究,為銷(xiāo)售管理和營(yíng)銷(xiāo)管理做充分的準備,并為您提供直接與目標客戶(hù)聯(lián)系的機會(huì ). 搜索結果支持導出到Excel或一鍵導入到手機通訊簿. 該數據可用于研究或市場(chǎng)參考. (非個(gè)人隱私信息,該軟件不生產(chǎn),也不存儲任何數據)
  軟件功能,只需用鼠標單擊,無(wú)需編寫(xiě)任何采集規則,[它可以直接導出Excel文件,并且只需單擊一下即可導入手機通訊錄,適用于電話(huà)銷(xiāo)售和微信營(yíng)銷(xiāo). )
  1. 實(shí)時(shí)采集,不是歷史數據,而是官方網(wǎng)站的最新搜索數據.
  2. 該操作簡(jiǎn)單易用,傻瓜式操作,分三個(gè)步驟完成(配置城市和行業(yè)詞匯;單擊以開(kāi)始采集;導出數據). 無(wú)需手動(dòng)編寫(xiě)任何規則. 操作就是這么簡(jiǎn)單.
  3. 支持多省/多城市采集. (同時(shí)在多個(gè)城市中使用多個(gè)關(guān)鍵字)使搜索更加“簡(jiǎn)單,快速,有效”.
  4. 快速搜索,極快的操作體驗,流暢舒適.
  5. 采集效率和數據完整性領(lǐng)先業(yè)界.
  6. 及時(shí)處理客戶(hù)反饋和建議還使該軟件能夠很好地處理許多細節.
  7. 具有自動(dòng)升級功能: 新版本正式發(fā)布后,客戶(hù)端打開(kāi)后將自動(dòng)升級到最新版本.
  該軟件是許多批發(fā)商,電子商務(wù)業(yè)務(wù)推廣和微型業(yè)務(wù)推廣人員將業(yè)務(wù)量增加一倍的法寶. 它被各個(gè)行業(yè)的許多業(yè)務(wù)人員使用. 查看全部

  [正版]采集所有者信息采集軟件企業(yè)目錄實(shí)時(shí)所有者信息采集軟件
  [Jigu客房新聞搜索營(yíng)銷(xiāo)軟件]屬于“ Jike營(yíng)銷(xiāo)軟件”系列. 該軟件是專(zhuān)業(yè)的所有者搜索軟件和功能強大的所有者信息搜索和采集軟件. 它可以自動(dòng)采集最新的所有者目錄,可以幫助您快速識別目標客戶(hù),進(jìn)行充分的市場(chǎng)研究,為銷(xiāo)售管理和營(yíng)銷(xiāo)管理做充分的準備,并為您提供直接與目標客戶(hù)聯(lián)系的機會(huì ). 搜索結果支持導出到Excel或一鍵導入到手機通訊簿. 該數據可用于研究或市場(chǎng)參考. (非個(gè)人隱私信息,該軟件不生產(chǎn),也不存儲任何數據)
  軟件功能,只需用鼠標單擊,無(wú)需編寫(xiě)任何采集規則,[它可以直接導出Excel文件,并且只需單擊一下即可導入手機通訊錄,適用于電話(huà)銷(xiāo)售和微信營(yíng)銷(xiāo). )
  1. 實(shí)時(shí)采集,不是歷史數據,而是官方網(wǎng)站的最新搜索數據.
  2. 該操作簡(jiǎn)單易用,傻瓜式操作,分三個(gè)步驟完成(配置城市和行業(yè)詞匯;單擊以開(kāi)始采集;導出數據). 無(wú)需手動(dòng)編寫(xiě)任何規則. 操作就是這么簡(jiǎn)單.
  3. 支持多省/多城市采集. (同時(shí)在多個(gè)城市中使用多個(gè)關(guān)鍵字)使搜索更加“簡(jiǎn)單,快速,有效”.
  4. 快速搜索,極快的操作體驗,流暢舒適.
  5. 采集效率和數據完整性領(lǐng)先業(yè)界.
  6. 及時(shí)處理客戶(hù)反饋和建議還使該軟件能夠很好地處理許多細節.
  7. 具有自動(dòng)升級功能: 新版本正式發(fā)布后,客戶(hù)端打開(kāi)后將自動(dòng)升級到最新版本.
  該軟件是許多批發(fā)商,電子商務(wù)業(yè)務(wù)推廣和微型業(yè)務(wù)推廣人員將業(yè)務(wù)量增加一倍的法寶. 它被各個(gè)行業(yè)的許多業(yè)務(wù)人員使用.

2020年7月的最新消息,優(yōu)采云在微信公眾號上批量采集最新文章(包括實(shí)時(shí)更新)的方法和思想

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 484 次瀏覽 ? 2020-08-06 21:21 ? 來(lái)自相關(guān)話(huà)題

  優(yōu)采云采集微信官方帳戶(hù),許多網(wǎng)站建設者都希望使用此功能. 我在2020年4月寫(xiě)了這些內容,但今天是7月,根本沒(méi)有問(wèn)題. 我不必多說(shuō),只需直接交付干貨即可.
  首先談?wù)勎业男枨?
  獲取約10個(gè)正式帳戶(hù)的批文. 監視最新帖子,大概的想法是早上檢查并在下午再次檢查. 采集可用的新文章.
  為什么要使用優(yōu)采云?
  該軟件非常易于使用,具有自動(dòng)URL重復數據刪除功能. 重復的鏈接將被跳過(guò),不再使用. 此外,優(yōu)采云具有WordPress免登錄發(fā)布界面. 我一直在為小白使用它. 我已經(jīng)習慣了,很容易上手.
  解決方案選擇:
  主要關(guān)注解決官方帳戶(hù)的歷史文章網(wǎng)址,即文章列表.
  首先,我想在開(kāi)始時(shí)使用它(這也是最在線(xiàn)的教程),但是事實(shí)證明,在Sogou官方帳戶(hù)上的搜索不再顯示某個(gè)特定官方帳戶(hù)的最新文章. 據說(shuō)它將在2019年之前無(wú)法使用,騰訊已關(guān)閉該界面.
  2. 直接捕獲微信數據包,使用fildder和其他數據包捕獲工具,并與PC版微信配合捕獲官方帳戶(hù)URL. 這非常復雜. 我看了一輪教程,果斷地放棄了,這超出了我的承受能力.
  3. 使用第三方公共帳戶(hù)數據查詢(xún)平臺. 該程序可以運行. 經(jīng)過(guò)研究,我發(fā)現了三個(gè).
  1. 西瓜助手:
  2. 小寶:
  
  3. 一個(gè)同伴插件:
  
  談?wù)勊鼈兏髯缘膬?yōu)點(diǎn)和缺點(diǎn):
  西瓜助手,優(yōu)點(diǎn): 可以查詢(xún)大量的官方賬號,并且視覺(jué)更新很快. 就像普通網(wǎng)站的采集一樣,官方帳戶(hù)中的文章列表可以直接通過(guò)優(yōu)采云采集. 缺點(diǎn),收費和昂貴的批次. 普通版是每月99元.
  小寶,優(yōu)點(diǎn),免費,您可以在登錄時(shí)查看官方帳戶(hù)數據,快速更新(基本上會(huì )有一天的間隔),并且該官方帳戶(hù)收錄更多內容. 缺點(diǎn): 優(yōu)采云無(wú)法直接采集列表,它是由js算法編寫(xiě)的.
  Yiban插件,優(yōu)點(diǎn),免費,有財云可以直接采集列表. 缺點(diǎn)是,某些官方帳戶(hù)無(wú)法找到數據,更新情況就像過(guò)山車(chē),相隔一天,相隔半年.
  我還體驗了一個(gè)名為vread的平臺,地址為: . 該平臺具有部分官方帳戶(hù)內容,并且還通過(guò)監視采集了最新的官方帳戶(hù)文章. 優(yōu)采云的優(yōu)勢可以直接采集. 缺點(diǎn): 官方帳戶(hù)收錄的較少,需要您自己提交(我提交了一個(gè),在前一天晚上提交,但第二天不收錄)并收取費用. 每月12元. 盡管價(jià)格便宜,但它確實(shí)不像免費的一部分插件那樣容易使用.
  我在第三方平臺上浪費了很多時(shí)間. 西瓜助理,我已經(jīng)寫(xiě)好了優(yōu)采云站的采集規則,目前正處于篩選官方賬戶(hù)的階段. 結果,第二天,系統提示我升級我的會(huì )員資格以繼續使用它. 操我,我的努力是徒勞的. 浪費時(shí)間.
  一個(gè)合作伙伴插件,編寫(xiě)規則也很簡(jiǎn)單. 但是,我最終放棄了與官方帳戶(hù)數據更新迷相同的操作.
  小寶,這種機動(dòng)性很好. 但是它呈現的列表是由js呈現的. 優(yōu)采云無(wú)能為力. 它只能通過(guò)帶有硒文本的python運行. 該硒僅僅是驅動(dòng)瀏覽器打開(kāi)網(wǎng)頁(yè)的程序. 以這種方式捕獲的結果是js算法完成時(shí)顯示的結果.
  我知道事實(shí),但是去年我學(xué)習了python一兩個(gè)星期,看了幾節課,現在我完全忘記了. 因此,我再次學(xué)習了python,并首先在站點(diǎn)b上搜索了硒教程. 看了幾次之后,我感到不舒服. 從硬盤(pán)上,我找到了一套“ Python3 Web Crawler實(shí)用案例”,該軟件是去年由崔慶才先生下載的. 在實(shí)際的一章中有一個(gè)實(shí)際的課程: “第16類(lèi): 使用硒模擬瀏覽器獲取淘寶商品和食品信息”. 這只是完美的教程. 閱讀幾次后,我在Internet上找到了一些源代碼,然后就可以開(kāi)始工作了.
  安裝python,pycharm等工具并不會(huì )多說(shuō),新手已經(jīng)花了很多時(shí)間.
  您認為最終計劃已經(jīng)完成嗎?
  否.
  四個(gè). 這不是源于Micro Treasure的官方帳戶(hù)商品數據爬網(wǎng)的最新缺陷(沒(méi)有那天,但只有昨天). 我也想找出是否還有更直接的方法. 確實(shí)如此. 那是微信公眾號的官方運營(yíng)平臺.
  您可以在此處管理材料,插入鏈接并引用其他官方帳戶(hù). 此處的官方帳戶(hù)顯示最新數據. 可以捕獲一個(gè)小時(shí)前的文章.
  
  但是,優(yōu)采云無(wú)法在此處直接爬取列表. Python和硒仍然需要戰斗. 經(jīng)過(guò)一夜零一夜的研究.
  我終于完成了這項任務(wù).
  最終的實(shí)施計劃如下:
  微信公眾號操作平臺,獲取列表頁(yè)面網(wǎng)址,該網(wǎng)址生成一個(gè)html文件并將其保存到本地網(wǎng)站(由phpstudy構建). 然后轉到Ucai Cloud以提取這些html中的URL,然后采集一篇文章. (通過(guò)這種方式,優(yōu)采云的效果與普通網(wǎng)站的采集效果相同).
  為什么不直接使用python采集官方帳戶(hù)的目標文章?因為我的技術(shù)不到位,所以要采集特定的文章,我必須了解圖像下載和html標簽處理. 我是新手,一點(diǎn)也不,我不知道學(xué)習需要多長(cháng)時(shí)間. 此外,官方帳戶(hù)文章的發(fā)布時(shí)間由js表示. 我可以通過(guò)優(yōu)采云標簽的方法直接從硒捕獲的html信息中直接調用它.
  
  
  我最近說(shuō)過(guò): python中的Selenium確實(shí)是人工制品!從理論上講,任何東西都可以捕獲! 查看全部

  優(yōu)采云采集微信官方帳戶(hù),許多網(wǎng)站建設者都希望使用此功能. 我在2020年4月寫(xiě)了這些內容,但今天是7月,根本沒(méi)有問(wèn)題. 我不必多說(shuō),只需直接交付干貨即可.
  首先談?wù)勎业男枨?
  獲取約10個(gè)正式帳戶(hù)的批文. 監視最新帖子,大概的想法是早上檢查并在下午再次檢查. 采集可用的新文章.
  為什么要使用優(yōu)采云?
  該軟件非常易于使用,具有自動(dòng)URL重復數據刪除功能. 重復的鏈接將被跳過(guò),不再使用. 此外,優(yōu)采云具有WordPress免登錄發(fā)布界面. 我一直在為小白使用它. 我已經(jīng)習慣了,很容易上手.
  解決方案選擇:
  主要關(guān)注解決官方帳戶(hù)的歷史文章網(wǎng)址,即文章列表.
  首先,我想在開(kāi)始時(shí)使用它(這也是最在線(xiàn)的教程),但是事實(shí)證明,在Sogou官方帳戶(hù)上的搜索不再顯示某個(gè)特定官方帳戶(hù)的最新文章. 據說(shuō)它將在2019年之前無(wú)法使用,騰訊已關(guān)閉該界面.
  2. 直接捕獲微信數據包,使用fildder和其他數據包捕獲工具,并與PC版微信配合捕獲官方帳戶(hù)URL. 這非常復雜. 我看了一輪教程,果斷地放棄了,這超出了我的承受能力.
  3. 使用第三方公共帳戶(hù)數據查詢(xún)平臺. 該程序可以運行. 經(jīng)過(guò)研究,我發(fā)現了三個(gè).
  1. 西瓜助手:
  2. 小寶:
  
  3. 一個(gè)同伴插件:
  
  談?wù)勊鼈兏髯缘膬?yōu)點(diǎn)和缺點(diǎn):
  西瓜助手,優(yōu)點(diǎn): 可以查詢(xún)大量的官方賬號,并且視覺(jué)更新很快. 就像普通網(wǎng)站的采集一樣,官方帳戶(hù)中的文章列表可以直接通過(guò)優(yōu)采云采集. 缺點(diǎn),收費和昂貴的批次. 普通版是每月99元.
  小寶,優(yōu)點(diǎn),免費,您可以在登錄時(shí)查看官方帳戶(hù)數據,快速更新(基本上會(huì )有一天的間隔),并且該官方帳戶(hù)收錄更多內容. 缺點(diǎn): 優(yōu)采云無(wú)法直接采集列表,它是由js算法編寫(xiě)的.
  Yiban插件,優(yōu)點(diǎn),免費,有財云可以直接采集列表. 缺點(diǎn)是,某些官方帳戶(hù)無(wú)法找到數據,更新情況就像過(guò)山車(chē),相隔一天,相隔半年.
  我還體驗了一個(gè)名為vread的平臺,地址為: . 該平臺具有部分官方帳戶(hù)內容,并且還通過(guò)監視采集了最新的官方帳戶(hù)文章. 優(yōu)采云的優(yōu)勢可以直接采集. 缺點(diǎn): 官方帳戶(hù)收錄的較少,需要您自己提交(我提交了一個(gè),在前一天晚上提交,但第二天不收錄)并收取費用. 每月12元. 盡管價(jià)格便宜,但它確實(shí)不像免費的一部分插件那樣容易使用.
  我在第三方平臺上浪費了很多時(shí)間. 西瓜助理,我已經(jīng)寫(xiě)好了優(yōu)采云站的采集規則,目前正處于篩選官方賬戶(hù)的階段. 結果,第二天,系統提示我升級我的會(huì )員資格以繼續使用它. 操我,我的努力是徒勞的. 浪費時(shí)間.
  一個(gè)合作伙伴插件,編寫(xiě)規則也很簡(jiǎn)單. 但是,我最終放棄了與官方帳戶(hù)數據更新迷相同的操作.
  小寶,這種機動(dòng)性很好. 但是它呈現的列表是由js呈現的. 優(yōu)采云無(wú)能為力. 它只能通過(guò)帶有硒文本的python運行. 該硒僅僅是驅動(dòng)瀏覽器打開(kāi)網(wǎng)頁(yè)的程序. 以這種方式捕獲的結果是js算法完成時(shí)顯示的結果.
  我知道事實(shí),但是去年我學(xué)習了python一兩個(gè)星期,看了幾節課,現在我完全忘記了. 因此,我再次學(xué)習了python,并首先在站點(diǎn)b上搜索了硒教程. 看了幾次之后,我感到不舒服. 從硬盤(pán)上,我找到了一套“ Python3 Web Crawler實(shí)用案例”,該軟件是去年由崔慶才先生下載的. 在實(shí)際的一章中有一個(gè)實(shí)際的課程: “第16類(lèi): 使用硒模擬瀏覽器獲取淘寶商品和食品信息”. 這只是完美的教程. 閱讀幾次后,我在Internet上找到了一些源代碼,然后就可以開(kāi)始工作了.
  安裝python,pycharm等工具并不會(huì )多說(shuō),新手已經(jīng)花了很多時(shí)間.
  您認為最終計劃已經(jīng)完成嗎?
  否.
  四個(gè). 這不是源于Micro Treasure的官方帳戶(hù)商品數據爬網(wǎng)的最新缺陷(沒(méi)有那天,但只有昨天). 我也想找出是否還有更直接的方法. 確實(shí)如此. 那是微信公眾號的官方運營(yíng)平臺.
  您可以在此處管理材料,插入鏈接并引用其他官方帳戶(hù). 此處的官方帳戶(hù)顯示最新數據. 可以捕獲一個(gè)小時(shí)前的文章.
  
  但是,優(yōu)采云無(wú)法在此處直接爬取列表. Python和硒仍然需要戰斗. 經(jīng)過(guò)一夜零一夜的研究.
  我終于完成了這項任務(wù).
  最終的實(shí)施計劃如下:
  微信公眾號操作平臺,獲取列表頁(yè)面網(wǎng)址,該網(wǎng)址生成一個(gè)html文件并將其保存到本地網(wǎng)站(由phpstudy構建). 然后轉到Ucai Cloud以提取這些html中的URL,然后采集一篇文章. (通過(guò)這種方式,優(yōu)采云的效果與普通網(wǎng)站的采集效果相同).
  為什么不直接使用python采集官方帳戶(hù)的目標文章?因為我的技術(shù)不到位,所以要采集特定的文章,我必須了解圖像下載和html標簽處理. 我是新手,一點(diǎn)也不,我不知道學(xué)習需要多長(cháng)時(shí)間. 此外,官方帳戶(hù)文章的發(fā)布時(shí)間由js表示. 我可以通過(guò)優(yōu)采云標簽的方法直接從硒捕獲的html信息中直接調用它.
  
  
  我最近說(shuō)過(guò): python中的Selenium確實(shí)是人工制品!從理論上講,任何東西都可以捕獲!

Pylon使用實(shí)時(shí)圖像捕獲來(lái)解釋PylonC SDK的使用過(guò)程

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 235 次瀏覽 ? 2020-08-06 05:04 ? 來(lái)自相關(guān)話(huà)題

  通常,對于硬件編程,硬件制造商將提供手冊和示例供SDK使用. 該手冊通常包括安裝和配置過(guò)程,一些基本概念的介紹,SDK的每個(gè)功能的使用,SDK的使用過(guò)程和示例(一些硬件示例直接寫(xiě)在手冊中,有些將單獨存在文件,有些同時(shí)具有). 為了使上位計算機軟件開(kāi)發(fā)人員獲得硬件主機編程任務(wù),他們應該首先閱讀并理解SDK概念,然后根據引入的SDK開(kāi)發(fā)過(guò)程閱讀SDK提供的示例,并修改相應的示例以供自己使用. . 該功能可用于查詢(xún)其用法. 一些開(kāi)發(fā)人員習慣性地記住他們的API,這既費時(shí)又費力,不建議使用. 下面主要說(shuō)明帶實(shí)時(shí)圖像采集的Basler相機的PylonC SDK的使用過(guò)程.
  使用PylonC SDK的總體流程圖如下:
  
  以下是針對不同工作要求的其中之一,常見(jiàn)的是加載相機對象和卸載相機對象. 要使用其他模塊,例如事件對象,可以相應地加載和卸載事件對象,并使用事件對象完成相關(guān)任務(wù). 進(jìn)行編程時(shí),必須計劃整個(gè)過(guò)程,尤其是在對硬件進(jìn)行編程時(shí),必須注意內存泄漏,并且之前分配的資源必須稍后釋放.
  以下是對五個(gè)主要過(guò)程的詳細分析,其中解釋了需求,并注釋了需要使用的功能
  
  加載相機對象
  卸載相機對象
  加載數據流以捕獲對象
  卸載數據流捕獲對象
  單幀或連續捕獲過(guò)程
  根據上述過(guò)程,可以實(shí)現實(shí)時(shí)圖像采集
  源代碼下載鏈接. 許多人要求我提供源代碼. 我瀏覽了之前的程序文件夾,找到了該程序. 它演示了使用Pylon SDK進(jìn)行攝像機采集的過(guò)程. 使用MIL完成界面顯示. 采集部分被封裝到一個(gè)類(lèi)中,可以直接重用. 測試相機是Basler相機. 請注意,Pylon僅完成原創(chuàng )數據的采集,使用MIL的MbufPut完成圖像數據的重組,然后MIL自動(dòng)顯示.
  ---------------------
  作者: 溫英雄 查看全部

  通常,對于硬件編程,硬件制造商將提供手冊和示例供SDK使用. 該手冊通常包括安裝和配置過(guò)程,一些基本概念的介紹,SDK的每個(gè)功能的使用,SDK的使用過(guò)程和示例(一些硬件示例直接寫(xiě)在手冊中,有些將單獨存在文件,有些同時(shí)具有). 為了使上位計算機軟件開(kāi)發(fā)人員獲得硬件主機編程任務(wù),他們應該首先閱讀并理解SDK概念,然后根據引入的SDK開(kāi)發(fā)過(guò)程閱讀SDK提供的示例,并修改相應的示例以供自己使用. . 該功能可用于查詢(xún)其用法. 一些開(kāi)發(fā)人員習慣性地記住他們的API,這既費時(shí)又費力,不建議使用. 下面主要說(shuō)明帶實(shí)時(shí)圖像采集的Basler相機的PylonC SDK的使用過(guò)程.
  使用PylonC SDK的總體流程圖如下:
  
  以下是針對不同工作要求的其中之一,常見(jiàn)的是加載相機對象和卸載相機對象. 要使用其他模塊,例如事件對象,可以相應地加載和卸載事件對象,并使用事件對象完成相關(guān)任務(wù). 進(jìn)行編程時(shí),必須計劃整個(gè)過(guò)程,尤其是在對硬件進(jìn)行編程時(shí),必須注意內存泄漏,并且之前分配的資源必須稍后釋放.
  以下是對五個(gè)主要過(guò)程的詳細分析,其中解釋了需求,并注釋了需要使用的功能
  
  加載相機對象
  卸載相機對象
  加載數據流以捕獲對象
  卸載數據流捕獲對象
  單幀或連續捕獲過(guò)程
  根據上述過(guò)程,可以實(shí)現實(shí)時(shí)圖像采集
  源代碼下載鏈接. 許多人要求我提供源代碼. 我瀏覽了之前的程序文件夾,找到了該程序. 它演示了使用Pylon SDK進(jìn)行攝像機采集的過(guò)程. 使用MIL完成界面顯示. 采集部分被封裝到一個(gè)類(lèi)中,可以直接重用. 測試相機是Basler相機. 請注意,Pylon僅完成原創(chuàng )數據的采集,使用MIL的MbufPut完成圖像數據的重組,然后MIL自動(dòng)顯示.
  ---------------------
  作者: 溫英雄

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久