当前位置:首页>python>政务年报 PDF 太多不想手抄?用 Python 批量提取表格字段并汇总成 CSV

政务年报 PDF 太多不想手抄?用 Python 批量提取表格字段并汇总成 CSV

  • 2026-06-28 06:45:39
政务年报 PDF 太多不想手抄?用 Python 批量提取表格字段并汇总成 CSV

一、案例简介

有些表格活,真不是难,就是烦。

尤其是政务网站年报 PDF 这类文件,人工处理的时候基本就是重复受罪:先打开 PDF,放大缩小找字段,再盯着“网站名称、主办单位、信息发布总数”等内容一点点抄到 Excel 里。抄完还得检查有没有看串行、抄错数、漏掉列。

如果只是三五份文件还好,一旦 PDF 数量多起来,效率就会明显下降,而且人工录入错误也很难完全避免。

这个案例要解决的就是这个问题:批量读取省级政务网站年报 PDF,从文件名中自动拆出省份、行政区代码和年份,再从 PDF 表格里提取核心字段,最后统一汇总成一份 CSV 表格。

需要处理的文件名一般类似:

河北省-130000-2022.pdf
安徽省-340000-2024.pdf

代码会自动提取:

  • • 省份
  • • 行政区代码
  • • 年份
  • • 网站名称
  • • 主办单位
  • • 信息发布总数
  • • 概况类信息更新量
  • • 政务动态信息更新量
  • • 信息公开目录信息更新量

这个项目的特点是非常实用:不做复杂 OCR,也不调用大模型,只针对结构化 PDF 表格做稳定提取。 能提取的字段自动提取,提不到的字段保留为空,保证整个批处理流程不会因为个别文件卡住。

案例代码获取:
https://ppmandata.net/codeBase/2067079056599289857
或者扫码成为超级课程会员免费获取。

[图片]

二、代码思路

整个项目的处理流程可以概括为 4 步。

第一步,锁定输入目录。程序只扫描项目下的 PDFs 文件夹,避免误处理无关文件。

第二步,解析 PDF 文件名。由于文件名中已经包含省份、行政区代码和年份,所以可以用正则表达式直接拆出来,不需要人工录入。

第三步,读取 PDF 表格。代码使用 pdfplumber 提取 PDF 中的表格结构,然后根据字段名称定位目标内容。

第四步,汇总导出结果。每份 PDF 提取完成后,统一整理成 DataFrame,最后导出为 政务网站报表汇总.csv

整体逻辑不是追求“识别所有 PDF”,而是围绕政务网站年报这一类固定场景做批量化处理。这样好处很明显:流程更轻、依赖更少、运行更稳定,也更适合日常数据整理工作。

三、核心代码展示

首先,从文件名中提取省份、行政区代码和年份。

import re

def
 parse_filename(filename):
    # 文件名格式:河北省-130000-2022.pdf

    match
 = re.match(r"^(.+?)-(\d+)-(\d+)\.pdf$", filename)
    if
 match:
        return
 match.group(1), match.group(2), match.group(3)
    return
 filename, "", ""

这一步的作用是把每份 PDF 自带的元信息自动整理出来。人工最容易忽略的小字段,比如年份、行政区代码,交给程序处理会更稳。

接着,对 PDF 表格中的单元格进行清洗。因为 PDF 表格提取出来后,经常会有换行、多余空格或者数字逗号,所以需要先统一格式。

import re

def
 clean_cell(cell):
    if
 cell is None:
        return
 ""
    return
 re.sub(r"\s+", " ", str(cell)).strip()


def
 extract_value_after_label(row_text_list, label):
    for
 index, cell_value in enumerate(row_text_list):
        if
 label not in cell_value:
            continue


        for
 candidate in row_text_list[index + 1:]:
            normalized = candidate.replace(",", "")
            if
 re.search(r"\d", normalized):
                return
 normalized

    return
 ""

这里的思路是:先找到字段标签,再从标签后面寻找数字内容。相比固定按某一列取值,这种方式对 PDF 表格轻微错位的容忍度更高。

然后,是 PDF 表格提取的核心部分。代码会先识别“网站名称”“主办单位”等直接字段,再进入“信息发布”区块,继续提取下面的子字段。

import pdfplumber

DIRECT_FIELDS = {
    "网站名称"
: "网站名称",
    "主办单位"
: "主办单位",
}

INFO_PUBLISH_FIELDS = {
    "总数"
: "信息发布总数",
    "概况类信息更新量"
: "概况类信息更新量",
    "政务动态信息更新量"
: "政务动态信息更新量",
    "信息公开目录信息更新量"
: "信息公开目录信息更新量",
}

def
 extract_from_pdfplumber(filepath):
    result = {}
    found_any_table = False
    in_info_publish_section = False

    with
 pdfplumber.open(filepath) as pdf:
        for
 page in pdf.pages:
            tables = page.extract_tables() or []

            if
 tables:
                found_any_table = True

            for
 table in tables:
                for
 row in table:
                    if
 not row or len(row) < 2:
                        continue


                    row_text_list = [clean_cell(cell) for cell in row if clean_cell(cell)]
                    if
 not row_text_list:
                        continue


                    cell0 = clean_cell(row[0])
                    cell1 = clean_cell(row[1])

                    for
 key, col_name in DIRECT_FIELDS.items():
                        if
 key in cell0 and cell1:
                            result[col_name] = cell1
                            break


                    if
 "信息发布" in cell0 and "单位" in cell0:
                        in_info_publish_section = True

                        total_value = extract_value_after_label(row_text_list, "总数")
                        if
 total_value:
                            result["信息发布总数"] = total_value

                        continue


                    if
 in_info_publish_section and cell0 and any(
                        keyword in cell0 for keyword in ["专栏", "解读", "办事", "互动", "安全"]
                    ):
                        in_info_publish_section = False
                        continue


                    if
 not in_info_publish_section:
                        continue


                    for
 sub_key, col_name in INFO_PUBLISH_FIELDS.items():
                        if
 not any(sub_key in cell for cell in row_text_list):
                            continue


                        value = extract_value_after_label(row_text_list, sub_key)
                        if
 value:
                            result[col_name] = value

                        break


    if
 not found_any_table:
        return
 None

    return
 result

这段代码的重点是“区块识别”。它不是简单地在整份 PDF 里搜索关键词,而是先判断是否进入“信息发布”区域,再提取这个区域下的字段。这样可以减少误匹配,避免把其他表格区域里的数字误当成目标结果。

最后,把单份 PDF 的结果补齐文件名信息,并统一导出 CSV。

import os
import
 glob
import
 pandas as pd

OUTPUT_COLUMNS = [
    "省份"
, "行政区代码", "年份", "网站名称", "主办单位",
    "信息发布总数"
, "概况类信息更新量", "政务动态信息更新量",
    "信息公开目录信息更新量"
, "源文件"
]

def
 extract_single_pdf(filepath):
    filename = os.path.basename(filepath)
    province, code, year = parse_filename(filename)

    result = extract_from_pdfplumber(filepath)

    if
 result is None:
        result = {}

    result["省份"] = province
    result["行政区代码"] = code
    result["年份"] = year
    result["源文件"] = filename

    return
 result


def
 main():
    pdf_files = sorted(glob.glob(os.path.join("PDFs", "*.pdf")))
    all_records = [extract_single_pdf(filepath) for filepath in pdf_files]

    df = pd.DataFrame(all_records)

    for
 column in OUTPUT_COLUMNS:
        if
 column not in df.columns:
            df[column] = ""

    df = df[OUTPUT_COLUMNS]
    df.to_csv("政务网站报表汇总.csv", index=False, encoding="utf-8-sig")

这一步保证了最终结果结构固定。即使某些 PDF 没有成功提取出完整字段,也会保留省份、代码、年份和源文件名,方便后续人工复核或补充。

四、结果展示

代码运行后,会在项目目录下生成一份汇总表:

政务网站报表汇总.csv

输出结果示例如下:

省份
行政区代码
年份
网站名称
主办单位
信息发布总数
概况类信息更新量
政务动态信息更新量
信息公开目录信息更新量
河北省
130000
2022
河北省人民政府网站
河北省人民政府办公厅
18542
320
9860
8362
安徽省
340000
2024
安徽省人民政府网站
安徽省人民政府办公厅
21476
415
12680
8381
浙江省
330000
2023
浙江省人民政府网站
浙江省人民政府办公厅
26318
528
14892
10898

从结果可以看到,原本需要人工逐份打开 PDF、复制粘贴、整理格式的工作,现在可以直接批量完成。最终表格已经整理成适合后续分析的结构化数据,可以继续用于描述统计、年度对比、省份对比,或者导入 Stata、R、Python 继续做进一步分析。

这个案例适合用在各类政务 PDF、年报表格、统计公报整理等场景。只要文件命名比较规范、PDF 内部存在可识别的表格结构,就可以在这个代码基础上扩展字段,改成自己的批量提取工具。

代码链接:

https://ppmandata.net/codeBase/2067079056599289857

C0167

转发本推文到朋友圈

添加客服

发送保留2小时并集齐10个点赞的截图

即可免费领取代码

点击阅读原文,直达代码链接

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 02:19:13 HTTP/2.0 GET : https://f.mffb.com.cn/a/500197.html
  2. 运行时间 : 0.101059s [ 吞吐率:9.90req/s ] 内存消耗:5,210.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0b3148cad51ec69151ef6c9cffcfad3a
  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.000618s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000837s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000282s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000270s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000473s ]
  6. SELECT * FROM `set` [ RunTime:0.000211s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000616s ]
  8. SELECT * FROM `article` WHERE `id` = 500197 LIMIT 1 [ RunTime:0.000489s ]
  9. UPDATE `article` SET `lasttime` = 1783016353 WHERE `id` = 500197 [ RunTime:0.001109s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000246s ]
  11. SELECT * FROM `article` WHERE `id` < 500197 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000404s ]
  12. SELECT * FROM `article` WHERE `id` > 500197 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000394s ]
  13. SELECT * FROM `article` WHERE `id` < 500197 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001190s ]
  14. SELECT * FROM `article` WHERE `id` < 500197 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.012497s ]
  15. SELECT * FROM `article` WHERE `id` < 500197 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.013471s ]
0.102645s