摘要:思路拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上以二進(jìn)制讀的形式打開(kāi)。獲取數(shù)據(jù)庫(kù)獲取表插入到數(shù)據(jù)庫(kù)
思路
拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上-rb以二進(jìn)制讀的形式打開(kāi)。
文件格式如下:
b’2019-03-29 10:55:00 0192.168.31.123:8080 5 12345678 0 44560 953864 2 192.168.31.123 md5 ’
可以看到日志里面的分隔符是制表符t,行末尾有換行符n
處理日志文件的基本邏輯
鏈接數(shù)據(jù)庫(kù)
逐行讀txt
將一行的數(shù)據(jù)分割為數(shù)組
將數(shù)據(jù)放入list
將list逐條轉(zhuǎn)化為json
存入數(shù)據(jù)庫(kù)
分片集群的mongo鏈接用于存儲(chǔ)日志的mongo集群有三個(gè)分片:flux-stat-1.mongo:27017,flux-stat-2.mongo:27017和flux-stat-3.mongo:27017.
假設(shè)用戶名是flux-stat,密碼是flux-stat-mongo123,登錄方法:
from pymongo import MongoClient import urllib.parse #創(chuàng)建MongoDB鏈接對(duì)象 username = urllib.parse.quote_plus(‘flux-stat’) password = urllib.parse.quote_plus(‘flux-stat-mongo123’) uri = "mongodb://%s:%[email protected]:27017, flux-stat-2.mongo:27017, flux-stat-3.mongo:27017/admin" % (username,password) client = MongoClient(uri)
注意:username和password必須要進(jìn)行轉(zhuǎn)換,否則鏈接不正確
pymongo逐行讀取日志文本with open(“d:/user/ServerLog/test.txt”,’rb’) as file: for line in file: #這里放操作 file.close()分割日志內(nèi)容轉(zhuǎn)化為json,并把每行json放到數(shù)組中
#引入json模塊 import json total=[] logList = line.split(‘ ’) #line分割為list keyList = [‘time’,’status’,’ip’,’type’,’userid’,’v1’,’v2’,’v3’,’v4’,’ip’,’md5’] #key的list logDict = dict(zip(keyList, logList)) #把二者以字典的方式拼起來(lái) logJson = json.dumps(logDict) #把字典轉(zhuǎn)換為string形式的json #json轉(zhuǎn)字典的方法為dictinfo = json.loads(json_str) total.append(logJson)日志存入mongo
insert_one和insert_many是兩種插入的方式,但是采用insert_one進(jìn)行逐條插入會(huì)進(jìn)行大量的訪問(wèn),大幅降低插入效率,采用insert_many進(jìn)行json為基本單位的list批量插入,效率明顯提高。
db = client["log"] #獲取數(shù)據(jù)庫(kù) coll = db[‘data’] #獲取表 coll.insert_many(total) #插入到數(shù)據(jù)庫(kù)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43697.html
摘要:思路拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上以二進(jìn)制讀的形式打開(kāi)。獲取數(shù)據(jù)庫(kù)獲取表插入到數(shù)據(jù)庫(kù) 思路 拿到的文本是二進(jìn)制的,在查看文件的時(shí)候可以加上-rb以二進(jìn)制讀的形式打開(kāi)。 文件格式如下: b’2019-03-29 10:55:00 0192.168.31.123:8080 5 12345678 0 44560 953864 2 192.168.31.123 md5 ’ ...
摘要:今天閑暇之余寫(xiě)了一個(gè)爬蟲(chóng)例子。后兩個(gè)為分頁(yè)參數(shù),是每個(gè)商品的,通過(guò)這個(gè)去獲取商品的評(píng)價(jià)記錄,所以我們只需要知道每個(gè)商品的就輕而易舉的獲取評(píng)價(jià)了。大概了解了整個(gè)流程,就可以開(kāi)始我們的爬蟲(chóng)工作了。 今天閑暇之余寫(xiě)了一個(gè)爬蟲(chóng)例子。通過(guò)爬蟲(chóng)去爬取京東的用戶評(píng)價(jià),通過(guò)分析爬取的數(shù)據(jù)能得到很多結(jié)果,比如,哪一種顏色的胸罩最受女性歡迎,以及中國(guó)女性的平均size(僅供參考哦~) 打開(kāi)開(kāi)發(fā)者工具-ne...
摘要:舉個(gè)栗子你有一個(gè)箱子,里面有一個(gè)兒子級(jí)別和孫子級(jí)別的箱子共層現(xiàn)在你把孫子級(jí)別的箱子單獨(dú)拿出來(lái),把整個(gè)箱子替換掉就是這種思想。。。自己體會(huì)吧這種語(yǔ)法,好像列表的切片賦值。。官方建議我們用它的好處是把和由兩個(gè)函數(shù)調(diào)用變?yōu)閭€(gè)參數(shù)傳進(jìn)去了。 閱讀須知 由于是對(duì)比書(shū)寫(xiě): M: 代表 Mongo原生語(yǔ)法 P: 代表 PyMongo書(shū)寫(xiě)方法 后面提到:同上 字眼: ...
摘要:爬取百思不得姐首先一步一步來(lái),我們先從爬最簡(jiǎn)單的文本開(kāi)始。將百思不得姐段子保存到中別忘了將管道加到配置文件中。雖然我只是簡(jiǎn)單的爬了百思不得姐,不過(guò)這些方法可以應(yīng)用到其他方面,爬取更多更有用的數(shù)據(jù)。 前一篇文章介紹了很多關(guān)于scrapy的進(jìn)階知識(shí),不過(guò)說(shuō)歸說(shuō),只有在實(shí)際應(yīng)用中才能真正用到這些知識(shí)。所以這篇文章就來(lái)嘗試?yán)胹crapy爬取各種網(wǎng)站的數(shù)據(jù)。 爬取百思不得姐 首先一步一步來(lái),我...
閱讀 25648·2021-09-29 09:41
閱讀 4812·2021-09-10 11:20
閱讀 1931·2021-09-09 09:32
閱讀 1897·2019-08-30 15:44
閱讀 3205·2019-08-29 17:13
閱讀 2816·2019-08-29 14:14
閱讀 2071·2019-08-29 14:11
閱讀 3234·2019-08-29 12:36