当前位置:首页>python>Python网络爬虫基础

Python网络爬虫基础

  • 2026-08-18 23:11:40
Python网络爬虫基础

什么是爬虫

简单说,爬虫就是获取网页并提取和保存信息的自动化程序,爬虫能够自动请求网页,并将所需要的数据抓取下来。通过对抓取的数据进行处理,从而提取出有价值的信息进行存储使用。

为什么用Python做爬虫

首先您应该明确,不止 Python 这一种语言可以做爬虫,诸如 Java、C/C++、PHP 都可以用来写爬虫程序,但是相比较而言 Python 做爬虫是最简单的。下面对它们的优劣势做简单对比:

  • Java 也经常用来写爬虫程序,但是 Java 语言本身较为复杂,代码量较大,因此它对于初学者而言,入门的门槛较高;
  • C/C++ 运行效率虽然很高,但是学习和开发成本高。写一个小型的爬虫程序就可能花费很长的时间;
  • PHP:对多线程、异步支持不是很好,并发处理能力较弱。

而 Python 语言,其语法优美、代码简洁、开发效率高、支持多个爬虫模块,比如 urllib、requests、Bs4、lxml 等。Python 的请求模块和解析模块丰富成熟,并且还提供了强大的 Scrapy 框架,让编写爬虫程序变得更为简单。因此使用 Python 编写爬虫程序是个非常不错的选择。

编写爬虫注意事项

爬虫是一把双刃剑,它给我们带来便利的同时,也给网络安全带来了隐患。有些不法分子利用爬虫在网络上非法搜集网民信息,或者利用爬虫恶意攻击他人网站,从而导致网站瘫痪的严重后果。关于爬虫的如何合法使用,推荐阅读《中华人民共和国网络安全法》。

因此大家在使用爬虫的时候,要自觉遵守国家法律法规,不要非法获取他人信息,或者做一些危害他人网站的事情。

编写爬虫的流程

爬虫程序与其他程序不同,它的的思维逻辑一般都是相似的,所以无需我们在逻辑方面花费大量的时间。下面对 Python 编写爬虫程序的流程做说白了明:

  1. 先由 requests 模块的 get() 方法打开 URL 得到网页 HTML 对象。
  2. 使用浏览器打开网页源代码分析网页结构以及元素节点。
  3. 通过解析库(lxml、BeautifulSoup)或则正则表达式提取数据。
  4. 存储数据到本地磁盘或数据库。

当然也不局限于上述一种流程。编写爬虫程序,需要您具备较好的 Python 编程功底,这样在编写的过程中您才会得心应手。爬虫程序需要尽量伪装成人访问网站的样子,而非机器访问,否则就会被网站的反爬策略限制,甚至直接封杀 IP,相关知识会在后续内容介绍。

爬虫程序之所以可以抓取数据,是因为爬虫能够对网页进行分析,并在网页中提取出想要的数据。在学习 Python 爬虫模块前,我们有必要先熟悉网页的基本结构,这是编写爬虫程序的必备知识。

如果您熟悉前端语言,那么您可以轻松地掌握本节知识。

网页一般由三部分组成,分别是 HTML(超文本标记语言)、CSS(层叠样式表)和 JavaScript(简称"JS"动态脚本语言),它们三者在网页中分别承担着不同的任务。

  • HTML 负责定义网页的内容
  • CSS 负责描述网页的布局
  • JavaScript 负责网页的行为

接下来我们来一起简单了解一下网页的基础知识。

网页基础知识

HTML

HTML 是网页的基本结构,它相当于人体的骨骼结构。网页中同时带有"<"、">"符号的都属于 HTML 标签。常见的 HTML 标签如下所示:

  • <!DOCTYPE html>
     声明为 HTML5 文档
  • <html>..</html>
     是网页的根元素
  • <head>..</head>
     元素包含了文档的元(meta)数据,如 <meta charset="utf-8"> 定义网页编码格式为 utf-8。
  • <title>..<title>
     元素描述了文档的标题
  • <body>..</body>
     表示用户可见的内容
  • <div>..</div>
     表示框架
  • <p>..</p>
     表示段落
  • <ul>..</ul>
     定义无序列表
  • <ol>..</ol>
     定义有序列表
  • <li>..</li>
     表示列表项
  • <img src="" alt="">
     表示图片
  • <h1>..</h1>
     表示标题
  • <a href="">..</a>
     表示超链接

编写如下代码:

<!DOCTYPE html><html><head>    <metacharset="utf-8">    <title>跟渣男教父学编程</title></head><body>    <ahref="www.youbafu.com">点击访问</a>    <h1>跟渣男教父学Python</h1>    <h2>Python爬虫</h2>    <div>        <p>认识网页结构</p>        <ul>            <li>HTML</li>            <li>CSS</li>        </ul>    </div></body></html>

运行结果如下图所示:

CSS

CSS 表示层叠样式表,其编写方法有三种,分别是行内样式、内嵌样式和外联样式。CSS 代码演示如下:

<!DOCTYPE html><html><head>    <!-- 内嵌样式 -->    <styletype="text/css">        body {            background-color: yellow;        }        p {            font-size30px;            color: springgreen;        }    </style>    <metacharset="utf-8">    <title>跟渣男教父学编程</title></head><body>    <!-- h1标签使用了行内样式 -->    <h1style="color: blue;">跟渣男教父学Python</h1>    <ahref="www.youbafu.com">点击访问</a>    <h2>Python爬虫</h2>    <div>        <p>认识网页结构</p>        <ul>            <li>HTML</li>            <li>CSS</li>        </ul>    </div></body></html>

如上图所示内嵌样式通过 <style> 标签书写样式表:

而行内样式则通过 HTML 元素的 style 属性来书写 CSS 代码。注意,每一个 HTML 元素,都有 style,class,id,name,title 属性。

外联样式表指的是将 CSS 代码单独保存为以 .css 结尾的文件,并使用引入到所需页面:

<head>    <link rel="stylesheet" type="text/css" href="mystyle.css"></head>

当样式需要被应用到多个页面的时候,使用外联样式表是最佳的选择。

JavaScript

JavaScript 负责描述网页的行为,比如,交互的内容和各种特效都可以使用 JavaScript 来实现。当然可以通过其他方式实现,比如 jQuery、还有一些前端框架( vue、React 等),不过它们都是在"JS"的基础上实现的。

简单示例:

<!DOCTYPE html><html><head>    <styletype="text/css">        body {            background-colorrgb(220226226);        }    </style>    <metacharset="utf-8">    <title>跟渣男教父学编程</title></head><body>    <h1style="color: blue;">跟渣男教父学Python</h1>    <h2>Python爬虫</h2>    <p>点击下方按钮获取当前时间</p>    <buttononclick="DisplayDate()">点击这里</button>    <pid="time"style="color: red;"></p>    <!-- script标签内部编写js代码 -->    <script>        function DisplayDate() {            document.getElementById("time").innerHTML = Date()        }    </script></body></html>

如果用人体来比喻网站结构的话,那么 HTML 是人体的骨架,它定义了人的嘴巴、眼睛、耳朵长在什么位置;CSS 描述了人体的外观细节,比如嘴巴长什么样子,眼睛是双眼皮还是单眼,皮肤是黑色的还是白色的等;而 JavaScript 则表示人拥有的技能,比如唱歌、打球、游泳等。

网页形态

静态网页

静态网页是标准的 HTML 文件,通过 GET 请求方法可以直接获取,文件的扩展名是.html 、.htm 等,网面中可以包含文本、图像、声音、FLASH 动画、客户端脚本和其他插件程序等。静态网页是网站建设的基础,早期的网站一般都是由静态网页制作的。静态并非静止不动,它也包含一些动画效果,这一点不要误解。

我们知道,当网站信息量较大的时,网页的生成速度会降低,由于静态网页的内容相对固定,且不需要连接后台数据库,因此响应速度非常快。但静态网页更新比较麻烦,每次更新都需要重新加载整个网页。

静态网页的数据全部包含在 HTML 中,因此爬虫程序可以直接在 HTML 中提取数据。通过分析静态网页的 URL,并找到 URL 查询参数的变化规律,就可以实现页面抓取。与动态网页相比,并且静态网页对搜索引擎更加友好,有利于搜索引擎收录。

动态网页

动态网页指的是采用了动态网页技术的页面,比如 AJAX(是指一种创建交互式、快速动态网页应用的网页开发技术)、ASP(是一种创建动态交互式网页并建立强大的 web 应用程序)、JSP(是 Java 语言创建动态网页的技术标准) 等技术,它不需要重新加载整个页面内容,就可以实现网页的局部更新。动态页面使用"动态页面技术"与服务器进行少量的数据交换,从而实现了网页的异步加载。

抓取动态网页的过程较为复杂,可以使用前面学习的网页自动化来模拟操作实现数据的爬取。

审查网页元素

对于一个优秀的爬虫工程师而言,要善于发现网页元素的规律,并且能从中提炼出有效的信息。因此,在动手编写爬虫程序前,必须要对网页元素进行审查。本节将讲解如何使用"浏览器"审查网页元素。

浏览器都自带检查元素的功能,不同的浏览器对该功能的叫法不同,谷歌(Chrome)浏览器称为"检查",而 Firefox 则称"查看元素",尽管如此,但它们的功却是相同的,本教程推荐使用谷歌(Chrome)浏览器。

检查百度首页

下面以检查百度首页为例:首先使用 Chrome 浏览器打开百度,然后在百度首页的空白处点击鼠标右键(或者按快捷键:F12),在出现的会话框中点击"检查",并进行如图所示操作:点击审查元素按钮,然后将鼠标移动至您想检查的位置,比如百度的输入框,然后单击,此时就会将该位置的代码段显示出来,如下图所示:

<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

最后在该代码段处点击右键,在出现的会话框中选择"复制"选项卡,并在二级会话框内选择"复制元素"。

依照上述方法,您可以检查页面内的所有元素。

检查网页结构

对于爬虫而言,检查网页结构是最为关键的一步,需要对网页进行分析,并找出信息元素的相似性。

下面以豆瓣电影 Top250 豆瓣电影 Top 250 为例,检查每部影片的 HTML 元素结构。如下图所示:

第一部影片的html代码段如下所示:

<li>    <divclass="item">        <divclass="pic">            <emclass="">1</em>            <ahref="https://movie.douban.com/subject/1292052/">                <imgwidth="100"alt="肖申克的救赎"src="https://img2.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp"class="">            </a>        </div>        <divclass="info">            <divclass="hd">                <ahref="https://movie.douban.com/subject/1292052/"class="">                    <spanclass="title">肖申克的救赎</span>                    <spanclass="title">&nbsp;/&nbsp;The Shawshank Redemption</span>                    <spanclass="other">&nbsp;/&nbsp;月黑高飞(港)  /  刺激1995(台)</span>                </a>                <spanclass="playable">[可播放]</span>            </div>            <divclass="bd">                <pclass="">                    导演: 弗兰克·德拉邦特 Frank Darabont&nbsp;&nbsp;&nbsp;主演: 蒂姆·罗宾斯 Tim Robbins /...<br>                    1994&nbsp;/&nbsp;美国&nbsp;/&nbsp;犯罪剧情                </p>                <divclass="star">                    <spanclass="rating5-t"></span>                    <spanclass="rating_num"property="v:average">9.7</span>                    <spanproperty="v:best"content="10.0"></span>                    <span>2564578人评价</span>                </div>                <pclass="quote">                    <spanclass="inq">希望让人自由。</span>                </p>            </div>        </div>    </div></li>

接下来检查第二部影片的html代码,如下所示:

<li>    <divclass="item">        <divclass="pic">            <emclass="">2</em>            <ahref="https://movie.douban.com/subject/1291546/">                <imgwidth="100"alt="霸王别姬"src="https://img3.doubanio.com/view/photo/s_ratio_poster/public/p2561716440.webp"class="">            </a>        </div>        <divclass="info">            <divclass="hd">                <ahref="https://movie.douban.com/subject/1291546/"class="">                    <spanclass="title">霸王别姬</span>                    <spanclass="other">&nbsp;/&nbsp;再见,我的妾  /  Farewell My Concubine</span>                </a>                <spanclass="playable">[可播放]</span>            </div>            <divclass="bd">                <pclass="">                    导演: 陈凯歌 Kaige Chen&nbsp;&nbsp;&nbsp;主演: 张国荣 Leslie Cheung / 张丰毅 Fengyi Zha...<br>                    1993&nbsp;/&nbsp;中国大陆中国香港&nbsp;/&nbsp;剧情爱情同性                </p>                <divclass="star">                    <spanclass="rating5-t"></span>                    <spanclass="rating_num"property="v:average">9.6</span>                    <spanproperty="v:best"content="10.0"></span>                    <span>1904847人评价</span>                </div>                <pclass="quote">                    <spanclass="inq">风华绝代。</span>                </p>            </div>        </div>    </div></li>

经过对比发现,除了每部影片的信息不同之外,它们的 HTML 结构是相同的,比如每部影片都使用 <div class="item"></div> 标签包裹起来。这里我们只检查了两部影片,如果在实际编写时,可以多检查几部,从而确定它们的 HTML 结构是相同的。

提示:通过检查网页结构,然后发现规律,这是编写爬虫程序最为重要的一步。

豆瓣电影实战

以豆瓣电影Top250为例,我们使用上一篇学过的正则表达式,结合分析网页元素来爬取电影的简单信息并存储到Excel中,或者存储为json文件。

再来一起看看每部影片的html代码元素结构:

<li>    <divclass="item">        <divclass="pic">            <emclass="">1</em>            <ahref="https://movie.douban.com/subject/1292052/">                <imgwidth="100"alt="肖申克的救赎"src="https://img2.doubanio.com/view/photo/s_ratio_poster/public/p480747492.webp"class="">            </a>        </div>        <divclass="info">            <divclass="hd">                <ahref="https://movie.douban.com/subject/1292052/"class="">                    <spanclass="title">肖申克的救赎</span>                    <spanclass="title">&nbsp;/&nbsp;The Shawshank Redemption</span>                    <spanclass="other">&nbsp;/&nbsp;月黑高飞(港)  /  刺激1995(台)</span>                </a>                <spanclass="playable">[可播放]</span>            </div>            <divclass="bd">                <pclass="">                    导演: 弗兰克·德拉邦特 Frank Darabont&nbsp;&nbsp;&nbsp;主演: 蒂姆·罗宾斯 Tim Robbins /...<br>                    1994&nbsp;/&nbsp;美国&nbsp;/&nbsp;犯罪剧情                </p>                <divclass="star">                    <spanclass="rating5-t"></span>                    <spanclass="rating_num"property="v:average">9.7</span>                    <spanproperty="v:best"content="10.0"></span>                    <span>2564578人评价</span>                </div>                <pclass="quote">                    <spanclass="inq">希望让人自由。</span>                </p>            </div>        </div>    </div></li>

这里假设我们要爬取影片的:电影名、电影别名、导演和演员信息、发行时间、地区、类别、推荐度、评分、评论数、简介信息,我们可以编写对应的正则表达式,将每部影片的需要信息匹配出来,正则表达式如下所示:

# 正则表达式匹配规则 
pattern = re.compile('<li>.*?"title">(.*?)<+                     '.*?"title">(.*?)<.*?"other">(.*?)<+                     '.*?"bd".*?class="">(.*?)</p>+  # 注意class后面有=""                     '.*?"star".*?rating(.*?)-t' +                     '.*?"v:average">(.*?)<+                     '.*?<span>(\d+)人' +                     '.*?inq">(.*?)<.*?</li>', re.S)

代码中用到请求模块 requests 和 pandas 库,需要先安装,在终端(Terminal)里输入:

pip install requestspip install pandas

requests的简单请求使用比较简单,下节课会详细讲解模块的相关使用。

完整代码:

import jsonimport os.pathimport pandas as pandasimport requestsimport reimport csv# 设置请求头: 模拟浏览器headers = {    'Host''movie.douban.com',    'Origin''movie.douban.com',    'User-Agent''Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Mobile Safari/537.36',}# 正则表达式匹配规则pattern = re.compile('<li>.*?"title">(.*?)<' +                     '.*?"title">(.*?)<.*?"other">(.*?)<' +                     '.*?"bd".*?p class="">(.*?)</p>' +  # 注意class后面有=""                     '.*?"star".*?rating(.*?)-t' +                     '.*?"v:average">(.*?)<' +                     '.*?<span>(\d+)人' +                     '.*?inq">(.*?)<.*?</li>', re.S)def get_films(pages=5):    films = []    for i in range(pages):        url = 'https://movie.douban.com/top250?start={}&filter='.format(i * 25)        text = requests.get(url, headers=headers).text        for item in re.findall(pattern, text):            print(item)            m_info = item[3].replace('&nbsp;''').strip().split('<br>\n')            film = {                '电影名': item[0],                '别名': item[1].replace('&nbsp;''').replace(' ''').strip() + item[2].replace('&nbsp;''').replace(' ''').strip(),                '导演和演员': m_info[0],                '发行时间': m_info[1].split('/')[0].strip(),                '地区': m_info[1].split('/')[1].strip(),                '类别': m_info[1].split('/')[2].strip(),                '推荐度''.'.join(list(item[4])),                '评分': item[5],                '评论数': item[6],                '简介': item[7]            }            films.append(film)    return filmsdef write_cvs(data):    with open(r'data/re_films.csv''w', encoding='utf-8'as f:        w = csv.DictWriter(f, fieldnames=data[0].keys())        w.writeheader()        w.writerows(data)def write_excel(data):    pdfile = pandas.DataFrame(data)    pdfile.to_excel(r'data/re_films.xlsx', sheet_name="豆瓣电影")def write_json(data):    s = json.dumps(data, indent=4, ensure_ascii=False)    with open(r'data/re_films.json''w', encoding='utf-8'as f:        f.write(s)def start():    data = list(get_films(1))    if not os.path.exists('data'):        os.mkdir('data')    write_json(data)    # write_excel(data)    # write_cvs(data)if __name__ == '__main__':    start()

文档总结

一、核心知识点回顾

1. 爬虫到底是什么?

简单说,爬虫就是个"自动化工具",帮你从网上批量下载数据。

打个比方:

  • 你想收集1000个商品的价格和评价
  • 手动复制粘贴?得干一整天
  • 写个爬虫?几分钟搞定

爬虫四步曲:

1. 请求网页(requests.get)2. 分析结构(浏览器审查元素)3. 提取数据(正则/BS4/lxml)4. 保存结果(文件/数据库)

2. 网页三剑客

技术
作用
比喻
HTML
定义内容结构
人体的骨架
CSS
控制样式布局
皮肤和衣服
JavaScript
实现交互行为
人的技能和动作

爬虫最关心的是 HTML,因为数据都在 HTML 标签里。


3. 静态网页 vs 动态网页

对比项
静态网页
动态网页
数据来源
HTML里直接有
JS异步加载
爬取难度
简单(requests+解析)
复杂(Selenium模拟)
响应速度
慢(需要等JS执行)
例子
新闻文章页
微博、抖音

判断方法:

  • 右键"查看网页源码",搜索你要的数据
  • 能找到 → 静态网页
  • 找不到 → 动态网页(AJAX加载)

4. 审查元素(爬虫必备技能)

操作步骤:

  1. 打开网页 → 按 F12(或右键"检查")
  2. 点左上角的箭头图标(或按 Ctrl+Shift+C)
  3. 点击页面上的元素,就能看到对应的 HTML 代码
  4. 复制元素,分析结构规律

关键技巧:

  • 多对比几个相似元素,找出共同点
  • 注意 class、id 等属性
  • 观察数据是写死在 HTML 里,还是 JS 动态生成的

5. 豆瓣电影实战要点

URL 规律:

1页: https://movie.douban.com/top250?start=0&filter=2页: https://movie.douban.com/top250?start=25&filter=3页: https://movie.douban.com/top250?start=50&filter=规律: start = (页码-1* 25

正则提取思路:

# 一部电影的所有信息都在 <li>...</li> 里 # 用 .*? 非贪婪匹配跳过不关心的内容 # 用 () 包裹想要提取的部分 pattern = re.compile('<li>.*?"title">(.*?)<.*?</li>', re.S)

数据存储方式:

  • JSON
     —— 适合 API 接口、前后端交互
  • Excel
     —— 适合数据分析、可视化
  • CSV
     —— 适合大数据、表格型数据

二、常见坑与解决方案

坑1:没加请求头被反爬

症状:requests.get() 返回 403 或空内容原因:网站检测到你是爬虫(默认 User-Agent 是 python-requests)解决:加 headers,伪装成浏览器

坑2:正则匹配不到数据

症状:re.findall() 返回空列表原因1HTML 里有换行,但没加 re.S原因2:正则写错了,某个字符对不上解决:先用 re.S,再用 regex101.com 调试

坑3:  等 HTML 实体没处理

症状:提取的文本里有 &nbsp;&amp; 等奇怪字符原因:HTML 里用实体符号表示特殊字符解决:用 .replace('&nbsp;', '') 替换掉

坑4:保存 Excel 时报错

症状:to_excel() 报错 ModuleNotFoundError原因:没安装 openpyxl 库解决:pip install openpyxl

坑5:豆瓣电影爬取被限制

症状:爬了几页就返回空数据或 403原因:豆瓣有反爬机制,频繁请求会被封解决:加 time.sleep() 控制频率,或换其他网站练习

三、学习建议

  1. 先学审查元素
     —— 不会分析网页结构,爬虫无从下手
  2. 静态网页优先
     —— 先爬简单的,再挑战动态网页
  3. 正则和 BS4 都要会
     —— 正则灵活,BS4 直观,各有适用场景
  4. 加请求头是标配
     —— 不写 headers 的爬虫跑不远
  5. 控制爬取频率
     —— 别把人家网站爬崩了,加个 sleep 保平安
  6. 先爬一页再循环
     —— 调试时只爬1页,确认没问题再批量爬

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 22:50:26 HTTP/2.0 GET : https://f.mffb.com.cn/a/508578.html
  2. 运行时间 : 0.258229s [ 吞吐率:3.87req/s ] 内存消耗:4,897.76kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=de6e5e251bbb13b79fee4e44298fff42
  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.000979s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001541s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000734s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000698s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001371s ]
  6. SELECT * FROM `set` [ RunTime:0.000544s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001327s ]
  8. SELECT * FROM `article` WHERE `id` = 508578 LIMIT 1 [ RunTime:0.008362s ]
  9. UPDATE `article` SET `lasttime` = 1787323826 WHERE `id` = 508578 [ RunTime:0.013917s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000940s ]
  11. SELECT * FROM `article` WHERE `id` < 508578 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001379s ]
  12. SELECT * FROM `article` WHERE `id` > 508578 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001163s ]
  13. SELECT * FROM `article` WHERE `id` < 508578 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.003118s ]
  14. SELECT * FROM `article` WHERE `id` < 508578 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006609s ]
  15. SELECT * FROM `article` WHERE `id` < 508578 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.039654s ]
0.262058s