乐于分享
好东西不私藏

一批 PDF 年报怎么快速拆?Python 自动提取表格字段

一批 PDF 年报怎么快速拆?Python 自动提取表格字段

有些表格整理工作,说难也不难,说简单也不简单。

比如一批政府网站年报、企业年报、项目验收报告、审计报告或者统计年鉴 PDF,里面的字段都差不多,但每次都要人工打开文件、翻页、复制表格、整理 Excel。

文件少的时候还能忍,文件一多就很麻烦。

尤其是这种场景:

河北省-130000-2022.pdf
山西省-140000-2022.pdf
辽宁省-210000-2022.pdf
江苏省-320000-2022.pdf
浙江省-330000-2022.pdf

每份 PDF 里都有类似的表格字段:

  • • 网站名称
  • • 主办单位
  • • 网站类型
  • • 信息发布总数
  • • 政务动态信息数
  • • 解读回应信息数
  • • 办事服务事项数
  • • 互动交流留言数

人工处理时,一份 PDF 可能只需要几分钟,但几十份、几百份放在一起,就会变成非常重复的机械劳动。

这篇教程要做的事情很直接:

用 Python 批量读取 PDF 表格,自动提取核心字段,最后汇总成一张 Excel 表。


一、背景

很多 PDF 年报看起来像“表格”,但实际上并不是 Excel 表。

它们通常是 PDF 页面里的文字、线条和坐标信息。

人工可以直接看懂:

字段
内容
网站名称
某某省人民政府门户网站
主办单位
某某省人民政府办公厅
信息发布总数
12876
政务动态信息数
5632

但对程序来说,需要先把 PDF 页面里的表格结构识别出来,再把字段和字段值对应起来。

所以这个任务可以拆成四步:

读取 PDF 文件
→ 提取页面表格
→ 根据关键词定位字段
→ 汇总导出 Excel

最终我们希望得到一张这样的结果表:

省份
行政区划代码
年份
网站名称
主办单位
信息发布总数
政务动态信息数
河北省
130000
2022
河北省人民政府门户网站
河北省人民政府办公厅
12876
5632
山西省
140000
2022
山西省人民政府门户网站
山西省人民政府办公厅
10451
4819
江苏省
320000
2022
江苏省人民政府门户网站
江苏省人民政府办公厅
23560
9288

二、代码思路

这篇教程主要使用三个 Python 包:

工具
作用
pdfplumber
读取 PDF 页面并提取表格
pandas
整理表格数据并导出 Excel
re
从文件名中提取省份、代码和年份

整体代码逻辑如下:

1. 扫描 input_pdfs 文件夹中的所有 PDF
2. 从文件名中提取省份、行政区划代码、年份
3. 逐页读取 PDF 表格
4. 把表格内容拉平成文本单元格
5. 根据关键词查找字段值
6. 将每份 PDF 的结果合并
7. 导出 CSV 和 Excel 文件

三、安装依赖

先安装需要用到的 Python 包:

pip install pdfplumber pandas openpyxl

如果后面需要处理扫描版 PDF,还可以额外使用 OCR 工具。

但这次先处理最常见的一类:

带文本层的 PDF,也就是可以直接复制文字的 PDF。


四、核心代码

1. 导入依赖

import re
from
 pathlib import Path

import
 pandas as pd
import
 pdfplumber

这里用到的几个库分别负责:

  • • Path:管理文件路径;
  • • re:用正则表达式解析文件名;
  • • pandas:整理和导出结果;
  • • pdfplumber:读取 PDF 表格。

2. 从文件名提取信息

假设 PDF 文件名格式为:

河北省-130000-2022.pdf

我们可以从中提取:

  • • 省份:河北省
  • • 行政区划代码:130000
  • • 年份:2022

代码如下:

def parse_filename(pdf_path: Path) -> dict:
    """
    从文件名中提取省份、行政区划代码和年份。
    文件名示例:河北省-130000-2022.pdf
    """

    name = pdf_path.stem

    pattern = r"(.+?)-(\d{6})-(\d{4})"
    match
 = re.search(pattern, name)

    if
 not match:
        return
 {
            "省份"
: "",
            "行政区划代码"
: "",
            "年份"
: ""
        }

    province, code, year = match.groups()

    return
 {
        "省份"
: province,
        "行政区划代码"
: code,
        "年份"
: year
    }

这一步的作用是先把文件本身的信息提取出来。

很多年报 PDF 的文件名里已经包含地区和年份,这些信息不需要再从正文里找,直接从文件名解析更稳定。


3. 清洗单元格文本

PDF 表格提取出来以后,单元格里经常会有换行、空格、特殊符号。

所以先写一个文本清洗函数。

def clean_text(x):
    """
    清洗 PDF 表格中的单元格文本。
    """

    if
 x is None:
        return
 ""

    x = str(x)
    x = x.replace("\n", "")
    x = x.replace("\r", "")
    x = re.sub(r"\s+", "", x)

    return
 x.strip()

比如原始内容可能是:

信息发布
总数

清洗后会变成:

信息发布总数

这样后面用关键词匹配时会更方便。


4. 提取 PDF 中的所有表格

接下来读取 PDF 的每一页,并提取页面中的表格。

def extract_all_tables(pdf_path: Path) -> list:
    """
    提取 PDF 中的所有表格。
    返回结果是一个二维表格列表。
    """

    all_tables = []

    with
 pdfplumber.open(pdf_path) as pdf:
        for
 page_no, page in enumerate(pdf.pages, start=1):
            tables = page.extract_tables()

            for
 table in tables:
                cleaned_table = []
                for
 row in table:
                    cleaned_row = [clean_text(cell) for cell in row]
                    cleaned_table.append(cleaned_row)

                all_tables.append({
                    "page"
: page_no,
                    "table"
: cleaned_table
                })

    return
 all_tables

这里需要注意:

  • • 一个 PDF 可能有很多页;
  • • 一页里可能有多个表格;
  • • 每个表格可能有很多行和列;
  • • 提取后要统一清洗单元格内容。

5. 根据关键词查找字段值

年报表格通常是“字段名—字段值”的形式。

比如:

字段
网站名称
河北省人民政府门户网站
主办单位
河北省人民政府办公厅
信息发布总数
12876

我们可以根据关键词找到字段所在单元格,然后取右侧单元格作为字段值。

def find_value_by_keyword(all_tables: list, keyword: str) -> str:
    """
    在所有表格中查找关键词,并返回其右侧单元格内容。
    """

    for
 item in all_tables:
        table = item["table"]

        for
 row in table:
            for
 col_idx, cell in enumerate(row):
                if
 keyword in cell:
                    if
 col_idx + 1 < len(row):
                        value = row[col_idx + 1]
                        if
 value:
                            return
 value

                    cell_clean = cell.replace(keyword, "")
                    if
 cell_clean:
                        return
 cell_clean

    return
 ""

这个函数的核心逻辑是:

找到关键词
→ 查看右侧单元格
→ 如果右侧有值,就返回
→ 如果没有,再尝试从当前单元格中拆出值

6. 提取单个 PDF 的核心字段

现在可以把前面的函数组合起来,提取一份 PDF 的关键信息。

def extract_one_pdf(pdf_path: Path) -> dict:
    """
    提取单个 PDF 年报中的核心字段。
    """

    file_info = parse_filename(pdf_path)
    all_tables = extract_all_tables(pdf_path)

    field_map = {
        "网站名称"
: "网站名称",
        "主办单位"
: "主办单位",
        "网站类型"
: "网站类型",
        "信息发布总数"
: "信息发布总数",
        "政务动态信息数"
: "政务动态信息数",
        "解读回应信息数"
: "解读回应信息数",
        "办事服务事项数"
: "办事服务事项数",
        "互动交流留言数"
: "互动交流留言数"
    }

    result = {
        "文件名"
: pdf_path.name,
        **file_info
    }

    for
 output_col, keyword in field_map.items():
        result[output_col] = find_value_by_keyword(all_tables, keyword)

    return
 result

这里的 field_map 可以按照自己的 PDF 内容继续扩展。

比如你想提取更多字段,可以继续加:

field_map = {
    "网站名称"
: "网站名称",
    "主办单位"
: "主办单位",
    "年度总访问量"
: "年度总访问量",
    "首页访问量"
: "首页访问量",
    "新媒体账号数量"
: "新媒体账号数量"
}

7. 批量处理文件夹

最后写一个批量处理函数,扫描整个文件夹里的 PDF。

def batch_extract(input_dir: str, output_dir: str):
    """
    批量提取 PDF 表格字段,并导出 CSV 和 Excel。
    """

    input_path = Path(input_dir)
    output_path = Path(output_dir)
    output_path.mkdir(parents=True, exist_ok=True)

    pdf_files = sorted(input_path.glob("*.pdf"))

    records = []

    for
 pdf_file in pdf_files:
        print
(f"正在处理:{pdf_file.name}")

        try
:
            record = extract_one_pdf(pdf_file)
            records.append(record)
        except
 Exception as e:
            records.append({
                "文件名"
: pdf_file.name,
                "错误信息"
: str(e)
            })

    df = pd.DataFrame(records)

    csv_path = output_path / "pdf_year_report_summary.csv"
    xlsx_path = output_path / "pdf_year_report_summary.xlsx"

    df.to_csv(csv_path, index=False, encoding="utf-8-sig")
    df.to_excel(xlsx_path, index=False)

    print
("处理完成")
    print
(f"CSV 文件已保存:{csv_path}")
    print
(f"Excel 文件已保存:{xlsx_path}")

这个函数做了几件事:

  1. 1. 找到所有 PDF 文件;
  2. 2. 逐个 PDF 提取字段;
  3. 3. 如果某个文件报错,也不会中断整个程序;
  4. 4. 最后统一导出 CSV 和 Excel。

8. 主程序入口

完整脚本最后加上主程序入口:

if __name__ == "__main__":
    batch_extract(
        input_dir="input_pdfs",
        output_dir="output"
    )

运行代码:

python extract_pdf_tables.py

五、结果展示

代码运行后,会在 output 文件夹中生成两个文件:

pdf_year_report_summary.csv
pdf_year_report_summary.xlsx

汇总结果示例如下:

文件名
省份
行政区划代码
年份
网站名称
主办单位
信息发布总数
政务动态信息数
河北省-130000-2022.pdf
河北省
130000
2022
河北省人民政府门户网站
河北省人民政府办公厅
12876
5632
山西省-140000-2022.pdf
山西省
140000
2022
山西省人民政府门户网站
山西省人民政府办公厅
10451
4819
江苏省-320000-2022.pdf
江苏省
320000
2022
江苏省人民政府门户网站
江苏省人民政府办公厅
23560
9288

从结果可以看到,原本分散在多个 PDF 里的字段已经被统一整理到一张 Excel 表中。

这样后续无论是做描述统计、地区对比,还是进一步合并到面板数据里,都可以直接使用。


六、结果解读

其实重点不是单纯“读取 PDF”,而是完成一条完整的数据整理流程:

批量 PDF 文件
→ 自动识别文件信息
→ 提取表格字段
→ 汇总结构化数据
→ 导出 Excel / CSV

相比人工整理,这种方法有三个优势。

1. 节省重复劳动

人工需要逐份 PDF 打开、复制、粘贴。

代码只需要把 PDF 放进指定文件夹,一次运行即可批量处理。

2. 字段格式统一

人工整理时,容易出现字段命名不一致的问题。

比如:

信息发布总数
信息发布数量
发布信息总数

代码可以通过统一字段表进行规范化处理。

3. 方便后续分析

导出的 Excel 表可以继续用于:

  • • 地区对比;
  • • 年份对比;
  • • 政务公开水平测度;
  • • 政府网站绩效评价;
  • • 政策执行透明度指标构建。

七、总结

这次我们演示了如何用 Python 批量提取 PDF 年报中的表格字段。

整个流程可以概括为:

读取 PDF
→ 提取表格
→ 匹配关键词
→ 整理字段
→ 导出 Excel

对于大量格式相近的 PDF 文件,这种方法非常适合用来减少重复劳动。

它尤其适用于:

  • • 政府网站年报整理;
  • • 企业年报字段提取;
  • • 项目验收报告汇总;
  • • 审计报告表格提取;
  • • 统计公报数据整理;
  • • 政策文件附表提取。

最后得到的不是一堆零散 PDF,而是一张可以继续分析的结构化数据表。

这也是 Python 自动化处理 PDF 的核心价值:

把“看得见但不好用”的 PDF 表格,变成“能统计、能合并、能分析”的 Excel 数据。

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