宝塔 bt 蜘蛛统计数量汇总与分类统计 python

宝塔 bt 蜘蛛统计数量汇总与分类统计 python2)fenlei.txt文件,用于配置如果你的服务器的网站有各种类型的站点要分类的时候,当然不分类也可以用。1)spider_file.txt统计的的txt文本文件,直接全选复制页面的文本,放到txt,3)spider_site_get.py文本处理与分类提取脚本,主要就是处理和现实。3)配置好站点分类,不配置也可以,配置格式是,井号加分类名字,下面一行一个站点域名。当站点多的时候不方便,,蜘蛛多少那列不能排序,不能按多少排序。当站点多的时候,只更新诱蜘蛛来的站点,没有蜘蛛的站点不显示!

在这里插入图片描述
宝塔会员的 网站统计里面看蜘蛛数量 不方便
当站点多的时候不方便,,蜘蛛多少那列不能排序,不能按多少排序
写了个代码 半自动统计 蜘蛛数量
当站点多的时候,只更新诱蜘蛛来的站点,没有蜘蛛的站点不显示!
在这里插入图片描述

总共三个文件:
1)spider_file.txt 统计的的txt文本文件,直接全选复制页面的文本 ,放到txt ,
2) fenlei.txt 文件,用于配置如果你的服务器的网站有各种类型的站点要分类的时候,当然不分类也可以用
3)spider_site_get.py 文本处理与分类 提取脚本,主要就是处理和现实
在这里插入图片描述
使用方法
1)将三个文件放到一个文件夹
2)装好引用
3)配置好站点分类,不配置也可以,配置格式是,井号加分类名字,下面一行一个站点域名
#分类一
站点1
站点2
站点3
站点4

#分类2
站点5
站点6
站点7
spider_site_get.py

import os
import re


def get_spider_site(site_str_list):
    """ :param site_str_list: 要处理的包含的站点 :return: 返回一个 元组list """
    site_line_temp = []
    for site_str in site_str_list:
        if len(site_str) < 8:
            pass
        else:
            site_str = site_str.strip()
            site_str = re.sub(r" .* ", "**", site_str)
            site_spider_num = site_str.split("**")
            site_spider_num[1] = site_spider_num[1].replace(",", "")
            site_line_temp.append(site_spider_num)

    site_line_temp = sorted(site_line_temp, key=lambda x: int(x[1]), reverse=True)
    # print(site_line_temp)
    return site_line_temp


def get_file_read(filepath):
    """ :param filepath: 读取文件路径 :return: 读取的文本内容,去除换行符,返回行list """
    if os.path.exists(filepath):
        pass
    else:
        with open(filepath, "a+", encoding="utf-8") as fw:
            fw.write("")
    with open(filepath, "r+", encoding="utf-8") as fr:
        data = fr.read().splitlines()
        return data


def get_site_type(file_path):
    """ :param file_path: 站点分类配置文件路径 :return: 一个分类字典 {"分类":["site1","site2"],"分类2":["site1","site2"]} """
    type_txt_list = get_file_read(file_path)  # 读取分类文档
    type_split = "\n".join(type_txt_list).split("#")  # 分割每个分类
    # print(type_split)
    lei_dict = { 
   }
    for type_item in type_split:
        type_item = type_item.strip()
        type_item = type_item.strip("\n")
        if len(type_item) > 1:
            # print("for", type_item)
            type_item_list = type_item.split("\n")  # 分割站点出来
            lei_dict[type_item_list[0]] = list(set(type_item_list[1:]))
    lei_dict["all"] = "\n".join(type_txt_list)

    # print(lei_dict)
    return lei_dict


if __name__ == '__main__':
    site_file = get_file_read("spider_file.txt")  # 读取蜘蛛文本
    sites = get_spider_site(site_file)  # 处理文本成 站点名字和蜘蛛数量
    lei_txt_path = "fenlei.txt"  # 分类配置文件
    sort_fenlei_dict = get_site_type(lei_txt_path)  # 分类字典
    sort_fenlei_dict_new = sort_fenlei_dict.copy()
    sort_fenlei_dict_new.pop("all")

    site_type_dict = { 
   }
    for site_spider in sites:  # 遍历站点蜘蛛数量 (site, 4567)
        # print(site_spider)
        if site_spider[0] in sort_fenlei_dict["all"]:
            for key_fenlei, value_site_list in sort_fenlei_dict_new.items():
                # print(key, value)
                if site_spider[0] in "#".join(value_site_list):
                    if key_fenlei not in site_type_dict:
                        # print(site_spider)
                        # print(key)
                        site_type_dict[key_fenlei] = [site_spider]
                    else:
                        # print("site_spider", site_spider)
                        # print(site_type_dict[key_fenlei])
                        site_type_dict[key_fenlei].append(site_spider)
                        # print(site_type_dict[key_fenlei])
        else:
            # print(site_spider)
            if "未分类" in site_type_dict:
                site_type_dict["未分类"].append(site_spider)
            else:
                site_type_dict["未分类"] = [site_spider]
    # print(site_type_dict)
    # print(sites)
    for k, v in site_type_dict.items():
        # print(k, v)
        # print()
        print("\n>>>", k)
        for v_site in v:
            # print(v_site[0], v_site[1])
            # print(f"https://ziyuan.baidu.com/keywords/index?range=week&site=https://{v_site[0]}")
            # print(v_site[0])

            # if int(v_site[1]) > 100:
   
            if int(v_site[1]) > 200:
                print(v_site[0], v_site[1])

复制过来的文本 ↓
spider_file.txt

www.xx.vip	8,223	4,860	5,215	800.40 MB	0 B	0	103,963	633	17,303
244
日志 | 配置
xx.xx.top	6,771	500	570	93.85 MB	0 B	0	17,538	1,603	365
日志 | 配置
xx.xx.com	1,507	671	853	268.25 MB	0 B	0	32,749	836	6,242
6
日志 | 配置
xx.xx.me	732	1	24	13.97 MB	0 B	0	2,907	36	0
日志 | 配置
xx.xx.com	399	118	137	60.08 MB	0 B	0	6,033	69	678
日志 | 配置
wxxww.xx.top	188	5	364	11.30 MB	0 B	0	1,852	0	1
日志 | 配置
xx.xx.com	102	6	36	42.59 MB	0 B	0	3,118	0	2,776
日志 | 配置
xx.xx.club	87	3	10	7.67 MB	0 B	0	2,007	0	1,722
1
日志 | 配置
xx.xx.me	83	19	34	5.50 MB	0 B	0	1,209	0	723
日志 | 配置
xx.xx.me	66	2	9	7.48 MB	0 B	0	1,122	0	456
日志 | 配置
xx.xx.me	56	1	15	1.02 MB	0 B	0	400	0	261
日志 | 配置
xx.xx.me	52	0	3	89.92 KB	0 B	0	92	0	0
日志 | 配置
www.xx.top	46	4	44	517.67 KB	0 B	0	120	2	0
日志 | 配置
xx.xx.com	43	2	7	5.25 MB	0 B	0	1,202	0	1,044
日志 | 配置
xx.xx.top	42	0	1	54.00 KB	0 B	0	71	0	0
日志 | 配置
xx.xx.top	38	0	1	48.28 KB	0 B	0	64	0	0
日志 | 配置
xx.xx.com	37	0	1	1.87 MB	0 B	0	553	0	489
日志 | 配置

fenlei.txt

#试管
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
#英语
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com
https://xxx.xxx.com

#九价
https://xxx.xxx.com
https://xxx.xxx.com

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34120.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注