当前位置:首页>python>我通过 Python 自动化做信息收集,效率提升 10 倍(附实战案例)

我通过 Python 自动化做信息收集,效率提升 10 倍(附实战案例)

  • 2026-01-18 07:36:12
我通过 Python 自动化做信息收集,效率提升 10 倍(附实战案例)

> 字数6900字,大约阅读时间为10min

信息收集是技术岗的高频基础工作——运维需要收集服务器配置信息,安全工程师需要收集目标资产信息,开发者需要收集接口/数据信息。手动收集不仅耗时耗力,还容易出错,而用 Python 实现自动化信息收集,能将原本几小时的工作压缩到几分钟,效率直接提升 10 倍。

本文将深入浅出分享高频实战案例,覆盖「服务器信息收集、域名资产探测、日志关键信息提取、批量接口数据爬取」,所有案例均提供完整可运行代码,零基础也能直接复用,让你快速掌握 Python 自动化信息收集的核心逻辑。

一、核心逻辑:Python 自动化信息收集为什么高效?

Python 能成为自动化信息收集的首选语言,核心在于三点:

  1. 丰富的原生库+第三方库
    无需重复造轮子,os/socket 等原生库处理系统/网络信息,requests/BeautifulSoup 等第三方库处理网络请求/数据解析;
  2. 语法简洁
    几行代码就能实现复杂逻辑,开发成本极低;
  3. 跨平台+可复用
    一套代码能在 Windows/Linux/macOS 运行,编写一次可重复使用,彻底摆脱重复劳动。

自动化的核心思路很简单:把手动操作的步骤(打开文件→复制内容→整理格式→输出结果),用 Python 代码替代,让计算机自动完成循环、筛选、汇总等机械工作

二、实战案例 1:服务器基础信息自动收集(运维必备)

应用场景

作为运维工程师,需要定期收集服务器的核心信息(CPU 核心数、内存使用率、磁盘空间、开放端口),用于监控服务器状态或排查故障。手动执行 top/free/df 等命令,再复制结果整理成表格,耗时且易出错。

自动化思路

用 Python 调用系统命令(或通过 psutil 库),自动获取服务器硬件+网络信息,整理成结构化数据(字典/表格),直接输出或保存为文件。

完整代码(Linux 系统通用)

import psutil
import socket
import platform
from datetime import datetime

defcollect_server_info() -> dict:
"""收集服务器核心信息,返回结构化字典"""
    server_info = {}

# 1. 基本信息(主机名、系统、当前时间)
    server_info["主机名"] = socket.gethostname()
    server_info["IP地址"] = socket.gethostbyname(socket.gethostname())
    server_info["系统版本"] = platform.platform()
    server_info["收集时间"] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# 2. CPU 信息
    server_info["CPU核心数"] = psutil.cpu_count(logical=True)  逻辑核心数
    server_info["CPU使用率"] = f"{psutil.cpu_percent(interval=1)}%"# 1秒内平均使用率

# 3. 内存信息(单位:GB
    mem = psutil.virtual_memory()
    server_info["总内存"] = f"{mem.total / 1024 / 1024 / 1024:.2f}GB"
    server_info["已用内存"] = f"{mem.used / 1024 / 1024 / 1024:.2f}GB"
    server_info["内存使用率"] = f"{mem.percent}%"

# 4. 磁盘信息(只统计根目录 /
    disk = psutil.disk_usage("/")
    server_info["磁盘总空间"] = f"{disk.total / 1024 / 1024 / 1024:.2f}GB"
    server_info["磁盘已用空间"] = f"{disk.used / 1024 / 1024 / 1024:.2f}GB"
    server_info["磁盘使用率"] = f"{disk.percent}%"

# 5. 常用开放端口(扫描 22/80/443/3306/6379 等高频端口)
    common_ports = [22804433306637980809090]
    open_ports = []
for port in common_ports:
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.settimeout(0.5)
try:
            sock.connect(("127.0.0.1", port))
            open_ports.append(str(port))
except:
pass
finally:
            sock.close()
    server_info["开放常用端口"] = ",".join(open_ports) if open_ports else""

return server_info

defsave_info_to_file(info: dict, filename: str = "server_info.txt"):
"""将服务器信息保存到文件"""
withopen(filename, "w", encoding="utf-8"as f:
for key, value in info.items():
            f.write(f"{key}{value}\n")
print(f"服务器信息已保存到{filename}")

if __name__ == "__main__":
print("===== 开始收集服务器信息 =====")
    info = collect_server_info()

打印结果
for key, value in info.items():
print(f"{key:12s}{value}")

保存到文件
    save_info_to_file(info)

核心依赖与使用说明

  1. 安装依赖:pip install psutil(跨平台系统监控库,比直接调用系统命令更稳定);
  2. 运行方式:Linux 服务器上直接执行 python3 server_collect.py,无需修改代码;
  3. 输出效果:控制台打印结构化信息,同时生成 server_info.txt 文件,包含所有核心数据,可直接用于汇报或监控。

效率对比

  • 手动操作:执行 5+ 命令,复制结果,整理格式,耗时 10~15 分钟;
  • 自动化操作:运行代码,等待 2 秒,直接获取结构化结果,耗时 < 1 分钟。

三、实战案例 2:域名资产自动探测(安全/运维必备)

应用场景

网络安全工程师或运维需要探测某个域名的相关资产(子域名、IP 地址、开放端口、网站标题),比如探测 example.com 的子域名 www.example.com/api.example.com 等,手动探测需要逐个测试,效率极低。

自动化思路

  1. 准备常见子域名字典(如 www/api/admin/test);
  2. 批量拼接子域名,解析 IP 地址;
  3. 测试子域名对应的 80/443 端口是否开放;
  4. 若端口开放,获取网站标题,汇总成表格。

完整代码

import socket
import requests
from bs4 import BeautifulSoup
from concurrent.futures import ThreadPoolExecutor

常见子域名字典(可根据需求扩展)
SUB_DOMAINS = [
"www""api""admin""test""dev""blog""ftp""mail",
"app""web""portal""static""file""ops""db"
]

defget_website_title(url: str) -> str:
"""获取网站标题,处理超时和异常"""
try:
        response = requests.get(url, timeout=3, verify=False)
        response.encoding = response.apparent_encoding
        soup = BeautifulSoup(response.text, "html.parser")
        title = soup.title.string.strip() if soup.title else"无标题"
return title
except:
return"无法访问"

defdetect_subdomain(domain: str, sub: str) -> dict:
"""探测单个子域名的信息"""
    sub_domain = f"{sub}.{domain}"
    result = {"子域名": sub_domain, "IP地址""解析失败""80端口""关闭""443端口""关闭""网站标题"""}

# 1. 解析IP地址
try:
        ip = socket.gethostbyname(sub_domain)
        result["IP地址"] = ip
except:
return result

# 2. 测试80端口(HTTP
    sock80 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock80.settimeout(1)
try:
        sock80.connect((ip, 80))
        result["80端口"] = "开放"
        result["网站标题"] = get_website_title(f"http://{sub_domain}")
except:
pass
finally:
        sock80.close()

# 3. 测试443端口(HTTPS
if result["80端口"] == "关闭":
        sock443 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock443.settimeout(1)
try:
            sock443.connect((ip, 443))
            result["443端口"] = "开放"
            result["网站标题"] = get_website_title(f"https://{sub_domain}")
except:
pass
finally:
            sock443.close()

return result

defbatch_detect_domain(domain: str, thread_num: int = 10):
"""批量探测子域名资产,多线程提升效率"""
print(f"===== 开始探测域名资产:{domain} =====")
print(f"子域名字典数量:{len(SUB_DOMAINS)},线程数:{thread_num}\n")

    results = []
多线程批量探测
with ThreadPoolExecutor(max_workers=thread_num) as executor:
        futures = [executor.submit(detect_subdomain, domain, sub) for sub in SUB_DOMAINS]
for future in futures:
            res = future.result()
if res["IP地址"] != "解析失败":  只保留能解析的子域名
                results.append(res)

打印结果(格式化输出)
print(f"{'子域名':20s}{'IP地址':15s}{'80端口':6s}{'443端口':6s}{'网站标题':20s}")
print("-" * 70)
for res in results:
print(f"{res['子域名']:20s}{res['IP地址']:15s}{res['80端口']:6s}{res['443端口']:6s}{res['网站标题']:20s}")

if __name__ == "__main__":
替换为要探测的域名(如 "example.com"
    target_domain = "example.com"
    batch_detect_domain(target_domain)

核心说明

  1. 依赖安装:pip install requests beautifulsoup4
  2. 核心优化:使用 ThreadPoolExecutor 多线程探测,10 个线程同时运行,探测 20 个子域名仅需 3~5 秒;
  3. 扩展建议:可扩展子域名字典(添加更多常见子域名),或增加端口扫描范围,提升探测全面性。

实际价值

快速摸清某个域名的资产分布,比如发现隐藏的 admin.example.com 管理后台、api.example.com 接口服务,为安全测试或运维管理提供基础数据。

四、实战案例 3:日志文件关键信息自动提取(开发/运维必备)

应用场景

开发或运维需要从海量日志文件中提取关键信息,比如从 Nginx 访问日志中提取 404/500 错误请求、高频访问 IP;从应用日志中提取异常堆栈信息。手动查找不仅耗时,还容易遗漏。

自动化思路

  1. 读取日志文件(支持超大文件分块读取);
  2. 用正则表达式匹配关键信息(错误码、IP、异常关键词);
  3. 统计分析结果(如 IP 访问次数排序、错误码分布);
  4. 保存提取结果到文件,便于后续分析。

完整代码(Nginx 日志错误提取示例)

import re
from collections import Counter

defextract_nginx_errors(log_file: str, output_file: str = "nginx_errors.txt"):
"""Nginx访问日志中提取404/500错误请求和高频IP"""
# Nginx日志格式(需根据实际日志格式调整正则)
示例日志格式:192.168.1.1 - - [20/May/2024:10:00:00 +0800] "GET /index.html HTTP/1.1" 404 150
    log_pattern = r'(\d+\.\d+\.\d+\.\d+) - - \[(.*?)\] "(.*?)" (\d{3}) (\d+)'

存储结果
    error_404 = []  # 404错误请求
    error_500 = []  # 500错误请求
    all_ips = []    所有访问IP

print(f"===== 开始提取Nginx日志错误信息:{log_file} =====")

分块读取日志文件(支持超大文件)
withopen(log_file, "r", encoding="utf-8"as f:
for line_num, line inenumerate(f, 1):
match = re.search(log_pattern, line)
ifnotmatch:
continue

            ip = match.group(1)
            time = match.group(2)
            request = match.group(3)
            status = match.group(4)
            size = match.group(5)

            all_ips.append(ip)
筛选404500错误
if status == "404":
                error_404.append({
"行号": line_num,
"IP": ip,
"时间": time,
"请求": request,
"状态码": status
                })
elif status == "500":
                error_500.append({
"行号": line_num,
"IP": ip,
"时间": time,
"请求": request,
"状态码": status
                })

统计高频IP(前10
    top_ips = Counter(all_ips).most_common(10)

保存结果到文件
withopen(output_file, "w", encoding="utf-8"as f:
        f.write("=" * 50 + "\n")
        f.write("Nginx日志关键信息提取结果\n")
        f.write("=" * 50 + "\n\n")

        f.write(f"1. 404错误请求共{len(error_404)}条:\n")
for err in error_404:
            f.write(f"   行号{err['行号']} | IP:{err['IP']} | 时间:{err['时间']} | 请求:{err['请求']}\n")

        f.write(f"\n2. 500错误请求共{len(error_500)}条:\n")
for err in error_500:
            f.write(f"   行号{err['行号']} | IP:{err['IP']} | 时间:{err['时间']} | 请求:{err['请求']}\n")

        f.write(f"\n3. 高频访问IP(前10):\n")
for ip, count in top_ips:
            f.write(f"   {ip}{count}\n")

print(f"提取完成!共发现{len(error_404)}404错误,{len(error_500)}500错误")
print(f"结果已保存到{output_file}")

if __name__ == "__main__":
替换为你的Nginx日志文件路径
    nginx_log_path = "/var/log/nginx/access.log"
    extract_nginx_errors(nginx_log_path)

核心说明

  1. 正则适配:需根据实际 Nginx 日志格式调整 log_pattern 正则表达式,否则无法匹配;
  2. 超大文件支持:采用逐行读取方式,不会加载整个文件到内存,支持几十 MB 甚至 GB 级日志;
  3. 扩展场景:可修改正则和关键词,用于提取应用日志中的 Error/Exception 异常信息,或数据库日志中的慢查询。

效率对比

  • 手动操作:打开超大日志文件,搜索关键词,统计结果,耗时 30+ 分钟;
  • 自动化操作:运行代码,等待 1~2 分钟,直接获取结构化错误信息和统计结果。

五、实战案例 4:批量接口数据自动爬取(开发者必备)

应用场景

开发者需要获取第三方平台的批量接口数据(如天气、股票、新闻),或公司内部系统的多页数据(如分页查询用户列表、订单记录)。手动通过 Postman 或浏览器逐个调用接口、复制 JSON 结果、整理成表格,不仅耗时(几百页数据需几小时),还容易因重复操作出错,数据汇总也麻烦。

自动化思路

  1. 分析接口规律
    :找到分页接口的参数变化逻辑(如 page=1/page=2/page=3,或 offset=0/offset=20 分页偏移);
  2. 批量请求接口
    :用 requests 库循环发送 HTTP 请求,自动替换分页参数;
  3. 解析结构化数据
    :接口返回 JSON 格式数据,用 Python 内置的 json 库解析,提取核心字段;
  4. 数据持久化
    :将所有页面的结果汇总,保存为 CSV/Excel 文件,便于后续分析或导入数据库。

完整代码(以「批量爬取股票列表数据」为例)

以下以某公开股票接口为例(接口为公开测试接口,无访问限制),实现多页股票数据的自动爬取、解析和保存,代码可直接运行。

import requests
import json
import csv
from datetime import datetime
from concurrent.futures import ThreadPoolExecutor

公开股票列表接口(分页参数:page,每页20条数据)
STOCK_API = "https://api.example.com/stock/list"替换为真实公开接口(示例接口仅作演示)
HEADERS = {
"User-Agent""Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Accept""application/json"
}

deffetch_stock_page(page: int) -> list:
"""爬取单页股票数据"""
    params = {
"page": page,
"size"20,  每页20条数据
"sort""market_cap",  按市值排序
"order""desc"
    }

try:
print(f"正在爬取第{page}页股票数据...")
        response = requests.get(
            url=STOCK_API,
            params=params,
            headers=HEADERS,
            timeout=10,
            verify=False
        )
        response.raise_for_status()  抛出HTTP错误(如404/500

解析JSON数据
        data = response.json()
if data.get("code") != 200:
print(f"{page}页爬取失败:{data.get('msg''未知错误')}")
return []

提取核心字段(根据接口返回格式调整)
        stock_list = data.get("data", {}).get("list", [])
        result = []
for stock in stock_list:
            stock_info = {
"股票代码": stock.get("code"""),
"股票名称": stock.get("name"""),
"最新价格": stock.get("price"0),
"涨跌幅": stock.get("change_rate"0),
"市值(亿)": stock.get("market_cap"0),
"行业": stock.get("industry"""),
"爬取时间": datetime.now().strftime("%Y-%m-%d %H:%M:%S")
            }
            result.append(stock_info)

print(f"{page}页爬取成功,获取{len(result)}条股票数据")
return result

except requests.exceptions.HTTPError as e:
print(f"{page}HTTP错误:{e.response.status_code}")
return []
except requests.exceptions.Timeout:
print(f"{page}页请求超时")
return []
except Exception as e:
print(f"{page}页爬取异常:{str(e)}")
return []

defbatch_fetch_stocks(total_pages: int, thread_num: int = 5) -> list:
"""多线程批量爬取多页股票数据"""
print(f"===== 开始批量爬取股票数据 =====")
print(f"总页数:{total_pages},线程数:{thread_num}\n")

    all_stocks = []
多线程爬取(线程数不宜过多,避免触发接口限流)
with ThreadPoolExecutor(max_workers=thread_num) as executor:
提交所有页面的爬取任务
        futures = [executor.submit(fetch_stock_page, page) for page inrange(1, total_pages + 1)]
汇总所有结果
for future in futures:
            page_data = future.result()
if page_data:
                all_stocks.extend(page_data)

print(f"\n===== 爬取完成 =====")
print(f"共爬取{len(all_stocks)}条股票数据")
return all_stocks

defsave_to_csv(data: list, filename: str = "stock_data.csv"):
"""将爬取的数据保存为CSV文件(Excel可直接打开)"""
ifnot data:
print("无数据可保存")
return

获取CSV表头(字典的键)
    headers = data[0].keys()

withopen(filename, "w", newline="", encoding="utf-8-sig"as f:
        writer = csv.DictWriter(f, fieldnames=headers)
        writer.writeheader()  写入表头
        writer.writerows(data)  写入数据

print(f"数据已保存到{filename},可用Excel直接打开")

if __name__ == "__main__":
配置爬取参数(爬取前10页数据)
    TOTAL_PAGES = 10
批量爬取
    stock_data = batch_fetch_stocks(TOTAL_PAGES)
保存为CSV文件
if stock_data:
        save_to_csv(stock_data)

核心说明

1. 接口适配技巧

  • 若实际接口需要 POST 请求(如携带 JSON 体),只需修改 requests.post() 并添加 json=payload 参数;
  • 若接口有鉴权(如 token),在 HEADERS 中添加 Authorization: Bearer your_token 即可;
  • 核心是先通过 Postman 测试接口,明确参数格式、返回字段后,再在代码中适配。

2. 多线程优化逻辑

  • 接口爬取的核心耗时是「网络等待」,多线程能同时发起多个页面的请求,效率提升 3~5 倍;
  • 线程数建议设为 5~10(根据接口限流规则调整),过多线程可能触发接口的反爬机制(IP 被临时封禁)。

3. 数据保存优势

  • 保存为 CSV 文件兼容性最强,Excel、WPS、Python 的 pandas 库都能直接读取;
  • 若需要保存为 Excel,可安装 openpyxl 库,使用 pandas.DataFrame(data).to_excel("stock_data.xlsx", index=False) 实现。

扩展场景(直接复用代码)

只需修改 fetch_stock_page 中的「接口地址、参数、字段提取逻辑」,即可适配其他场景:

  • 爬取公司内部接口:如分页查询订单数据(page=1order_status=1);
  • 爬取第三方公开数据:如天气接口(多城市批量查询)、新闻接口(多分类爬取);
  • 爬取分页网页数据:若接口返回 HTML,可结合 BeautifulSoup 解析页面元素(如表格数据)。

效率对比

  • 手动操作:10 页数据,每页 20 条,需手动调用 10 次接口、复制 200 条数据、整理成表格,耗时 30~60 分钟;
  • 自动化操作:运行代码,等待 1~2 分钟,直接获取 CSV 格式的结构化数据,无需人工干预。

六、自动化信息收集的核心技巧与避坑指南

1. 通用技巧(提升效率+稳定性)

  • 多线程/异步优先
    :网络请求、文件读取等 IO 密集型任务,优先用多线程(ThreadPoolExecutor)或异步(aiohttp),效率提升数倍;
  • 异常捕获要全面
    :网络波动、接口超时、数据格式异常是常态,需捕获 HTTPErrorTimeoutJSONDecodeError 等常见异常,避免程序崩溃;
  • 添加请求头/延时
    :模拟浏览器请求(添加 User-Agent),避免被接口识别为爬虫;高频请求时添加 time.sleep(0.5) 延时,防止触发限流;
  • 结构化数据输出
    :结果优先保存为 CSV/JSON/Excel,便于后续分析、导入数据库,比纯文本更实用。

2. 常见坑与解决方案

  • 坑1:接口返回格式不一致
    解决方案:提取字段时用 get() 方法(如 stock.get("name", "")),设置默认值,避免 KeyError;
  • 坑2:IP 被接口封禁
    解决方案:控制线程数、添加请求延时、使用代理 IP 池(复杂场景);
  • 坑3:超大文件读取内存溢出
    解决方案:逐行读取(日志提取案例)或分块读取,不加载整个文件到内存;
  • 坑4:中文乱码
    解决方案:文件读写时指定 encoding="utf-8" 或 utf-8-sig,接口请求时用 response.encoding = response.apparent_encoding 自动识别编码。

3. 合规性提醒

  • 自动化爬取/收集数据时,需遵守「robots 协议」和网站的用户协议,仅爬取公开数据或授权数据
  • 禁止对未授权的系统、接口进行扫描或爬取,避免触犯法律或企业规定。

七、总结:自动化让技术人摆脱重复劳动

Python 自动化信息收集的核心价值,不在于代码有多复杂,而在于「用机器替代机械劳动」——把技术人从重复的复制粘贴、命令执行、数据整理中解放出来,将时间投入到更有价值的分析、优化、创新工作中。

本文的实战案例,覆盖了运维、安全、开发的高频场景,代码可直接复用,零基础也能快速上手。其实自动化的门槛并不高,关键是「找到重复劳动的场景,用代码实现步骤替代」:

  • 如果你需要重复执行命令 → 用 Python 调用系统命令;
  • 如果你需要重复处理数据 → 用正则、JSON 解析批量处理;
  • 如果你需要重复发送请求 → 用多线程批量请求。

从今天开始,试着用 Python 自动化解决一个你工作中的重复场景,你会发现:原来几小时的工作,真的能压缩到几分钟,效率提升 10 倍不止!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 21:23:46 HTTP/2.0 GET : https://f.mffb.com.cn/a/461590.html
  2. 运行时间 : 0.230637s [ 吞吐率:4.34req/s ] 内存消耗:4,650.95kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=4462dfd830922637b088040a24eaac2d
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001042s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001640s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001275s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.001971s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001458s ]
  6. SELECT * FROM `set` [ RunTime:0.000601s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001488s ]
  8. SELECT * FROM `article` WHERE `id` = 461590 LIMIT 1 [ RunTime:0.003168s ]
  9. UPDATE `article` SET `lasttime` = 1770557027 WHERE `id` = 461590 [ RunTime:0.002028s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000641s ]
  11. SELECT * FROM `article` WHERE `id` < 461590 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003170s ]
  12. SELECT * FROM `article` WHERE `id` > 461590 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001096s ]
  13. SELECT * FROM `article` WHERE `id` < 461590 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001818s ]
  14. SELECT * FROM `article` WHERE `id` < 461590 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.004368s ]
  15. SELECT * FROM `article` WHERE `id` < 461590 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002552s ]
0.234588s