久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

python - 通過正則提取出來的ip,怎么命名

瀏覽:167日期:2022-07-02 11:07:53

問題描述

source_ip = line.split(’- -’)[0].strip() if re.match(’[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}’,source_ip):if source_ip_dict.get(source_ip,’-’)==’-’: source_ip_dict[source_ip]=1else: source_ip_dict[source_ip]=source_ip_dict[source_ip]+1

通過以上的代碼把apache的日志ip提取出來,并且進行統計去重了,提取的ip數據如下:python - 通過正則提取出來的ip,怎么命名

那么要怎么將這些ip地址進行命名分類,如202.108.11.103跟220.181.32.137為百度蜘蛛ip想要實現的效果如下這兩個ip命名為百度蜘蛛,然后把他們的統計數據相加即4336+3411百度蜘蛛 7747

這個要怎么操作

問題解答

回答1:

from itertools import groupbyNAME_IP_MAPPING = { ’202.108.11.103’:’百度蜘蛛’, ’220.181.32.137’: ’百度蜘蛛’,}spiders = [ {’ip’:’202.108.11.103’,’count’:123}, {’ip’:’220.181.32.137’,’count’:345}]# 先用ip通過映射得到名字,再根據名字將spiders里的item分組,之后各自求和存入新的dict中。{k: sum(s[’count’] for s in g) for k, g in groupby(spiders, lambda s:NAME_IP_MAPPING.get(s[’ip’]))}# output: {’百度蜘蛛’: 468}回答2:

可以嘗試構建一個大型的以字典為鍵, 爬蟲名字為值的字典;

ip_map = { ’202.108.11.103’: ’baidu-spider’, ’220’.181.32.137: ’baidu-spider’, ’192.168.1.1’: ’other’ ....}sum = {}for ip in source_ip: print ip sum[ip_mapping.get(ip, ’other’)] = sum.get(ip, 0) + source_ip[ip]print sum回答3:

使用pandas的數據透視表

python - 通過正則提取出來的ip,怎么命名

回答4:

這樣多累啊!為什么不給這個ip分組單獨建立一張表, 名為IPGroup (id, ip, groupname)

idipgroupName1202.108.11.103百度蜘蛛2220.181.32.137百度蜘蛛

之后一個SQL就搞定了,多么輕松(設樓主用的表明為IPStastics)

SELECT b.groupName, SUM(a.count)FROM IPStastics a INNER JOIN IPGroup b ON a.ip = b.ipGROUP BY b.groupName

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲精品一区二区三区在线 | 国产高清久久 | 欧美a级成人淫片免费看 | 日本一区二区精品 | 亚洲国产高清在线 | 中文字幕 亚洲一区 | 一级黄视频 | 国产视频中文字幕 | 99精品一区二区三区 | 国产高清一区二区 | 成人免费观看49www在线观看 | 成人久久久精品乱码一区二区三区 | 国产一区二区三区免费在线观看 | 日本一区二区高清视频 | 久久久久久久网站 | 欧美日韩国产一区二区三区 | 日本一级淫片免费看 | 国产精品久久久久久福利一牛影视 | 欧美日韩国产一区二区三区在线观看 | 特黄色一级片 | 国产乱码精品一区二区三区手机版 | 日韩在线中文字幕 | 欧美日韩一级二级三级 | 亚洲成人久久久 | 玖玖综合网 | 黄色一级网址 | 久久人人爽人人爽人人片av不 | 一区免费 | 亚洲国产成人av | 久久99深爱久久99精品 | 欧美午夜一区 | 国产精品欧美久久久久一区二区 | 国产精品无码久久久久 | 91视频黄色| 欧美精品一区二区三区在线播放 | 中文字幕精品一区久久久久 | 天天操天天舔 | 山岸逢花在线观看 | www.夜夜操.com | 一区二区在线免费观看 | 中文字幕一区二区三区四区不卡 |