3.数据解析之re解析

数据解析

1. 数据解析概述

1.1 数据解析方式

  1. re 解析
  2. bs4 解析
  3. xpath 解析
  4. pyquery 解析

1.2 数据解析原理

解析的局部的文本内容都会在标签之间或标签对应的属性中进行存储

  • 进行指定标签的定位
  • 标签或者标签对应的属性中存储的数据值进行提取(解析)

1.3 数据解析爬虫流程

  • 指定 url

  • 发起请求 get/post

  • 获取相应数据

  • 数据解析

  • 持久化存储

2. re 解析

2.1 re 基础

2.1.1 正则表达式基础

正则表达式:对字符串操作的一种逻辑公式,一般用来对字符串进行匹配和筛选

常用元字符

代码说明
.匹配 除换行符以外的其他所有字符
\w匹配 数字,字母,下划线
\s匹配 任意的空白符
\d匹配 数字
\n匹配 换行符
\t匹配 制表符
\b匹配 单词的开始或结束
^匹配 字符串的开始(在集合字符里[^a]表示非(不匹配)的意思
$匹配 字符串的结束

常用反义字符

代码/语法说明
\W匹配 任意不是字母,数字,下划线,汉字的字符
\D匹配 任意非数字的字符
\S匹配 任意不是空白符的字符
\B匹配 不是单词开头或结束的位置
a|b匹配 a 或者 b
( )匹配()内的内容,也表示一个组
[…]匹配 字符组中的字符
[^…]匹配 除了字符组中的所有字符

常用限定词/量词

代码/语法说明
*重复 0 次或者更多次
+重复 1 次或者更多次
重复 0 次或者 1 次
{n}重复 n 次
{n, }重复 n 次或者更多次
{m, n}重复 n 次到 m 次
2.1.2 惰性匹配和贪婪匹配
  • 贪婪匹配:正则表达式中包含重复的限定符时,通常的行为是匹配尽可能多的字符。
    • ?,*,+,{}都属于贪恋匹配
  • 懒惰匹配:有时候需要匹配尽可能少的字符
    • 在上述量词后再加一个 ? 则属于惰性匹配 eg:*?,+?
2.1.3 匹配模式
  • re.I: 忽略大小写
  • re.M: 多行匹配
  • re.S:单行匹配 让 . 可以匹配换行符

2.2re 模块常用函数

2.2.1 compile 方法

根据包含正则表达式的字符串创建模式对象,返回一个pattern对象

  • re.compile (pattern = “flags”) flags 表示匹配模式
  • re.compile (r"flags")
2.2.2 findall 函数
  • re.findall (parttern,string)
  • pattern.findall (string)

表示搜索字符串,然后以列表 形式返回全部匹配的子字符串

2.2.3 finditer 函数
  • re.finditer (parttern,string)
  • pattern.finditer (string)

表示搜索字符串,然后以迭代器 形式返回全部匹配的子字符串

2.2.4 match 方法和 search 方法

共同点:

  • 两种方法都用于匹配子字符串
  • 两种方法都返回 match 对象

不同点:

  • match 仅从第一个字符开始匹配,匹配失败返回 None
  • search 会逐个开始匹配,直到匹配成功或失败 即 search 可以匹配包含的第一次出现的子字符串

re.match (pattren , 子字符串,匹配模式)

re.search (pattern , 字符串,匹配模式)

2.2.5 group()

用于返回迭代器中的数据

2.3 re 爬虫实战

思路

  • 拿到页面源代码
  • 编写正则,提取页面数据
  • 保存数据
2.3.1 需求 爬取 豆瓣Top 250数据

csv文件:文件中的数据以 “ , ” 隔开

使用时需要导入 csv模块

import re
import requests
import csvurl = "https://movie.douban.com/top250"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"
}fp = open("豆瓣top250.csv","w",encoding="utf-8")
obj = re.compile(r'.*?(?P.*?)'r'.*?(?P.*?)</span>'</span><span class="token string">r'.*?<p class="">(?P<direct>.*?) '</span><span class="token string">r'.*?<br>(?P<years>.*?) '</span><span class="token string">r'.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>'</span><span class="token string">r'.*?<span>(?P<number>.*?)</span>'</span><span class="token string">r'.*?<span class="inq">(?P<comment>.*?)</span>'</span><span class="token punctuation">,</span> re<span class="token punctuation">.</span>S<span class="token punctuation">)</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">10</span><span class="token punctuation">)</span><span class="token punctuation">:</span>start <span class="token operator">=</span> i <span class="token operator">*</span><span class="token number">25</span>param <span class="token operator">=</span> <span class="token punctuation">{<!-- --></span><span class="token string">"start"</span><span class="token punctuation">:</span>start<span class="token punctuation">}</span>resp <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>url<span class="token operator">=</span>url<span class="token punctuation">,</span>headers<span class="token operator">=</span>headers<span class="token punctuation">,</span>params<span class="token operator">=</span>param<span class="token punctuation">)</span>page_source <span class="token operator">=</span> resp<span class="token punctuation">.</span>text<span class="token comment"># print(page_source)</span>result <span class="token operator">=</span> obj<span class="token punctuation">.</span>finditer<span class="token punctuation">(</span>page_source<span class="token punctuation">)</span><span class="token keyword">for</span> item <span class="token keyword">in</span> result<span class="token punctuation">:</span>num <span class="token operator">=</span> item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"num"</span><span class="token punctuation">)</span>title <span class="token operator">=</span> item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"title"</span><span class="token punctuation">)</span>score <span class="token operator">=</span> item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"score"</span><span class="token punctuation">)</span>direct <span class="token operator">=</span> item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"direct"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>strip<span class="token punctuation">(</span><span class="token punctuation">)</span>years <span class="token operator">=</span> item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"years"</span><span class="token punctuation">)</span><span class="token punctuation">.</span>strip<span class="token punctuation">(</span><span class="token punctuation">)</span>number <span class="token operator">=</span> item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"number"</span><span class="token punctuation">)</span>comment <span class="token operator">=</span> item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"comment"</span><span class="token punctuation">)</span>fp<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"</span><span class="token interpolation"><span class="token punctuation">{<!-- --></span>num<span class="token punctuation">}</span></span><span class="token string">,</span><span class="token interpolation"><span class="token punctuation">{<!-- --></span>title<span class="token punctuation">}</span></span><span class="token string">,</span><span class="token interpolation"><span class="token punctuation">{<!-- --></span>score<span class="token punctuation">}</span></span><span class="token string">,</span><span class="token interpolation"><span class="token punctuation">{<!-- --></span>direct<span class="token punctuation">}</span></span><span class="token string">,</span><span class="token interpolation"><span class="token punctuation">{<!-- --></span>years<span class="token punctuation">}</span></span><span class="token string">,</span><span class="token interpolation"><span class="token punctuation">{<!-- --></span>number<span class="token punctuation">}</span></span><span class="token string">,</span><span class="token interpolation"><span class="token punctuation">{<!-- --></span>comment<span class="token punctuation">}</span></span><span class="token string">\n"</span></span><span class="token punctuation">)</span>fp<span class="token punctuation">.</span>close<span class="token punctuation">(</span><span class="token punctuation">)</span>
resp<span class="token punctuation">.</span>close<span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"爬取完成"</span><span class="token punctuation">)</span>
</code></pre> 
<h5><a id="232____190"></a>2.3.2 需求 爬取 电影天堂电影信息</h5> 
<pre><code class="prism language-python"><span class="token keyword">import</span> re
<span class="token keyword">import</span> requestsurl <span class="token operator">=</span> <span class="token string">"https://www.dy2018.com/"</span>
headers <span class="token operator">=</span> <span class="token punctuation">{<!-- --></span><span class="token string">"User-Agent"</span><span class="token punctuation">:</span> <span class="token string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36"</span>
<span class="token punctuation">}</span>obj_1 <span class="token operator">=</span> re<span class="token punctuation">.</span><span class="token builtin">compile</span><span class="token punctuation">(</span><span class="token string">r"2022必看热片.*?</ul>"</span><span class="token punctuation">,</span>re<span class="token punctuation">.</span>S<span class="token punctuation">)</span>
obj_2 <span class="token operator">=</span> re<span class="token punctuation">.</span><span class="token builtin">compile</span><span class="token punctuation">(</span><span class="token string">r"<li><a href='(?P<add>.*?)' title=(?P<name>.*?)>"</span><span class="token punctuation">,</span>re<span class="token punctuation">.</span>S<span class="token punctuation">)</span>
obj_3 <span class="token operator">=</span> re<span class="token punctuation">.</span><span class="token builtin">compile</span><span class="token punctuation">(</span><span class="token string">r'<td bgcolor="#fdfddf"><a href="(?P<link_1>.*?)">'</span><span class="token punctuation">,</span>re<span class="token punctuation">.</span>S<span class="token punctuation">)</span>resp <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>url<span class="token operator">=</span>url<span class="token punctuation">,</span>headers<span class="token operator">=</span>headers<span class="token punctuation">)</span>
resp<span class="token punctuation">.</span>encoding <span class="token operator">=</span> <span class="token string">"gb2312"</span>
page_source <span class="token operator">=</span> resp<span class="token punctuation">.</span>text<span class="token comment"># 抓取必看热片部分的页面代码</span>
result_1 <span class="token operator">=</span> re<span class="token punctuation">.</span>findall<span class="token punctuation">(</span>obj_1<span class="token punctuation">,</span>page_source<span class="token punctuation">)</span>result_2 <span class="token operator">=</span> re<span class="token punctuation">.</span>finditer<span class="token punctuation">(</span>obj_2<span class="token punctuation">,</span>result_1<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token keyword">for</span> item <span class="token keyword">in</span> result_2<span class="token punctuation">:</span>url_child <span class="token operator">=</span>url<span class="token operator">+</span>item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"add"</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token punctuation">]</span><span class="token keyword">print</span><span class="token punctuation">(</span>item<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"name"</span><span class="token punctuation">)</span><span class="token punctuation">[</span><span class="token number">1</span><span class="token punctuation">:</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">]</span><span class="token punctuation">)</span>resp_2 <span class="token operator">=</span> requests<span class="token punctuation">.</span>get<span class="token punctuation">(</span>url<span class="token operator">=</span>url_child<span class="token punctuation">,</span>headers<span class="token operator">=</span>headers<span class="token punctuation">)</span>resp_2<span class="token punctuation">.</span>encoding <span class="token operator">=</span> <span class="token string">"gb2312"</span>page_source_1 <span class="token operator">=</span> resp_2<span class="token punctuation">.</span>textresult_3 <span class="token operator">=</span> obj_3<span class="token punctuation">.</span>finditer<span class="token punctuation">(</span>page_source_1<span class="token punctuation">)</span><span class="token keyword">for</span> item_1 <span class="token keyword">in</span> result_3<span class="token punctuation">:</span><span class="token keyword">print</span><span class="token punctuation">(</span>item_1<span class="token punctuation">.</span>group<span class="token punctuation">(</span><span class="token string">"link_1"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">""</span><span class="token punctuation">)</span>resp<span class="token punctuation">.</span>close<span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre>                        </p>
                        <p><br /><pre><code style="font-size:16px;">本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击<a
                            href="https://shimo.im/forms/N2A1gvJRpPh7K9qD/fill" target="_blank" rel="nofollow">【内容举报】</a>进行投诉反馈!</code></pre></p>
                        <!-- E 正文 -->
                        <link href="https://qiniu.techgrow.cn/readmore/dist/readmore.css" type="text/css" rel="stylesheet">
<script src="https://qiniu.techgrow.cn/readmore/dist/readmore.js" type="text/javascript"></script>
<script>
    var regex = /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
    var isMobile = navigator.userAgent.match(regex);
    if (!isMobile) {
        try {
            var plugin = new ReadmorePlugin();
            plugin.init({
                id: "readmore-container",
                blogId: "55721-7689706765131-406",
                name: "财经早读",
                keyword: "666",
                qrcode: "https://www.imspm.com/assets/img/caijingzaodu.jpg",
                type: "website",
                height: "auto",
                expires: "7",
                interval: "60",
                random: "1"
            })
        } catch (e) {
            console.warn("readmore plugin occurred error: " + e.name + " | " + e.message);
        }
    }
</script>                    </div>

                    <!-- S 付费阅读 -->
<!-- E 付费阅读 -->


                    <!-- S 点赞 -->
<div class="article-donate">
    <a href="javascript:" class="btn btn-primary btn-like btn-lg social-share-icon icon-heart addbookbark" data-type="archives" data-aid="715590" data-action="/index.php/addons/cms/ajax/collection.html">收藏</a>
    </div>
<!-- E 点赞 -->


                    <div class="entry-meta">
    <ul>
        <!-- S 归档 -->
        <li>标签:<a href="/index.php/dev.html" class="tag" rel="tag" target="_blank">技术</a></li>
        <!-- S 归档 -->
    </ul>

    <ul class="article-prevnext">
        <!-- S 上一篇下一篇 -->
                <li>
            <span>上一篇 ></span>
            <a href="/index.php/dev/715589.html" target="_blank">爬虫04——数据解析(一)</a>
        </li>
                <li>
            <span>下一篇 ></span>
            <a href="/index.php/dev/715591.html" target="_blank">数据解析(JSON、XML)详解 适合初学者</a>
        </li>
                <!-- E 上一篇下一篇 -->
    </ul>
</div>


                    <div class="related-article">
    <div class="row" style="margin: 0 -15px;">
        <!-- S 相关文章 -->
        <div class="col-xs-12">
            <h3 style="font-size: 1.1em;">相关文章</h5>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747938.html" target="_blank">Duilib中list控件支持ctrl和shif多行选中的实现</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747937.html" target="_blank">[ICML2015]Batch Normalization:Accelerating Deep Network Training by Reducing Internal Covariate Shif</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747936.html" target="_blank">win10系统 微软输入法 于eclipse ctrl+shif+f冲突间接处理办法</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747935.html" target="_blank">Codeforces Round #259 (Div. 2) B. Little Pony and Sort by Shif</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747934.html" target="_blank">读LDD3,内存映射与DMA--PAGE_SHIF…</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747933.html" target="_blank">VMware虚拟机安装XP【要先分区,再设置BOOT 启动CD,shif+上移】</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747932.html" target="_blank">更换iBus五笔的左与右Shif</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747931.html" target="_blank">sublime ctrl+shif+f 没用解决办法</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747930.html" target="_blank">idea 对 ctrl + z 的撤销 是 ctrl + shif + z</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747929.html" target="_blank">计算机最早的设计师应用于,计算机应用基础选择题doc.doc</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747928.html" target="_blank">win10自带截图神器:Win+Shift+S</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747927.html" target="_blank">Python基础之文件目录操作</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747926.html" target="_blank">python简述目录_Python基础之文件目录操作(示例代码)</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747925.html" target="_blank">tp5 如何做数据采集</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747924.html" target="_blank">任务2-7(服务器字体+阿里巴巴矢量库)</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747923.html" target="_blank">html标签(1):h1~h6,p,br,pre,hr</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747922.html" target="_blank">TI 电量计介绍与芯片选型指南</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747921.html" target="_blank">几款TI电源芯片简介</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747920.html" target="_blank">TI DSP芯片C2000系列读取FLASH数据</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747919.html" target="_blank">德州仪器(Ti)平台嵌入式开发基础</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747918.html" target="_blank">TI三相电机智能栅极驱动芯片特点分类</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747917.html" target="_blank">省选模拟(12.08) T3 圈圈圈圈圈圈圈圈</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747916.html" target="_blank">Hadoop生态圈技术栈(上)</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747915.html" target="_blank">大数据开发基础入门与项目实战(三)Hadoop核心及生态圈技术栈之6.Impala交互式查询</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747914.html" target="_blank">小猿圈之Linux下Mysql 操作命令</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747913.html" target="_blank">大数据Hadoop生态圈常用面试题</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747912.html" target="_blank">大数据开发基础入门与项目实战(三)Hadoop核心及生态圈技术栈之4.Hive DDL、DQL和数据操作</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747911.html" target="_blank">备战Noip2018模拟赛11(B组)T3 Monogatari 物语</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747910.html" target="_blank">【智能优化算法-圆圈搜索算法】基于圆圈搜索算法Circle Search Algorithm求解单目标优化问题附matlab代码</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747909.html" target="_blank">NYOJ 78 圈水池</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747908.html" target="_blank">递归问题 跑道 汽车 绕圈问题 Python实现</a></p>
        </div>
                <div class="col-xs-12">
            <p style="margin-top: 17px;margin-bottom: 8.5px;"><a href="/index.php/dev/747907.html" target="_blank">Hadoop生态圈(三):MapReduce</a></p>
        </div>
                <!-- E 相关文章 -->
    </div>
</div>


                    <div class="clearfix"></div>
                </div>
            </div>
        </main>

        <aside class="col-xs-12 col-md-4">
            <!--@formatter:off-->
<!--@formatter:on-->

            <!-- S 内容推荐 -->
<div class="panel panel-default hot-article">
    <div class="panel-heading">
        <h3 class="panel-title">内容推荐</h3>
    </div>
    <div class="panel-body">
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">1</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/jiaohutiyan/753475.html" title="大厂出品!保姆级教程帮你掌握「用户体验要素」" target="_blank">大厂出品!保姆级教程帮你掌握「用户体验要素」</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">2</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/jiaohutiyan/753348.html" title="大厂实战案例!设计师如何助力京东快递业务增长?" target="_blank">大厂实战案例!设计师如何助力京东快递业务增长?</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">3</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/jiaohutiyan/753116.html" title="总监干货!5个常见的UI设计规范创建误区" target="_blank">总监干货!5个常见的UI设计规范创建误区</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">4</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/kaifagongju/752540.html" title="数据库管理利器——Navicat Premium v17.0.4学习版(Windows+MacOS+Linux)" target="_blank">数据库管理利器——Navicat Premium v17.0.4学习版(Windows+MacOS+Linux)</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">5</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/jiaohutiyan/750353.html" title="进阶必学!快速掌握10种国际主流设计模型" target="_blank">进阶必学!快速掌握10种国际主流设计模型</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">6</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/jiaohutiyan/750352.html" title="春节期间,10个大厂的产品细节走心设计" target="_blank">春节期间,10个大厂的产品细节走心设计</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">7</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/jiaohutiyan/747940.html" title="如何帮助用户度过新人期?来看雪球APP的实战总结!" target="_blank">如何帮助用户度过新人期?来看雪球APP的实战总结!</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">8</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/ruanjianzixun/42357.html" title="Sketch 95.3最新版下载 (Sketch矢量绘图应用软件)" target="_blank">Sketch 95.3最新版下载 (Sketch矢量绘图应用软件)</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">9</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/ruanjianzixun/42356.html" title="Axure RP 9 最新正式版安装软件与汉化语言包下载(2023年3月30日更新)" target="_blank">Axure RP 9 最新正式版安装软件与汉化语言包下载(2023年3月30日更新)</a>
            </div>
        </div>
                <div class="media media-number">
            <div class="media-left">
                <span class="num tag">10</span>
            </div>
            <div class="media-body">
                <a class="link-dark" href="/index.php/chanpinsheji/42343.html" title="嘘!SaaS产品的差异化设计细节,一般人我不告诉他" target="_blank">嘘!SaaS产品的差异化设计细节,一般人我不告诉他</a>
            </div>
        </div>
            </div>
</div>
<!-- E 内容推荐 -->

<div class="panel panel-blockimg">
    <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-6421005227861480"
    crossorigin="anonymous"></script>
<!-- 右侧正方形 -->
<ins class="adsbygoogle"
    style="display:block"
    data-ad-client="ca-pub-6421005227861480"
    data-ad-slot="1989994359"
    data-ad-format="auto"
    data-full-width-responsive="true"></ins>
<script>
    (adsbygoogle = window.adsbygoogle || []).push({});
</script>
</div>
<div class="panel panel-default lasest-update">
    <!-- S 最近更新 -->
    <div class="panel-heading">
        <h3 class="panel-title">最新更新</h3>
    </div>
    <div class="panel-body">
        <ul class="list-unstyled">
                        <li>
                <span><a href="/index.php/chanpinjingli.html" target="_blank">[产品经理]</a></span>
                <a class="link-dark" href="/index.php/chanpinjingli/758173.html" title="3分钟绘制流程图!这个AI+绘图工具的神仙组合,学完老板直呼内行" target="_blank">3分钟绘制流程图!这个AI+绘图工具的神仙组合,学完老板直呼内行</a>
            </li>
                        <li>
                <span><a href="/index.php/chanpinjingli.html" target="_blank">[产品经理]</a></span>
                <a class="link-dark" href="/index.php/chanpinjingli/758172.html" title="商业潜规则:打败你的不是AI,而是人性" target="_blank">商业潜规则:打败你的不是AI,而是人性</a>
            </li>
                        <li>
                <span><a href="/index.php/chanpinsheji.html" target="_blank">[产品设计]</a></span>
                <a class="link-dark" href="/index.php/chanpinsheji/758171.html" title="DeepSeek+智能派单系统的实践分享" target="_blank">DeepSeek+智能派单系统的实践分享</a>
            </li>
                        <li>
                <span><a href="/index.php/chanpinjingli.html" target="_blank">[产品经理]</a></span>
                <a class="link-dark" href="/index.php/chanpinjingli/758170.html" title="一文读懂本年实际损益借(贷)方发生额" target="_blank">一文读懂本年实际损益借(贷)方发生额</a>
            </li>
                        <li>
                <span><a href="/index.php/chuangyexueyuan.html" target="_blank">[创业学院]</a></span>
                <a class="link-dark" href="/index.php/chuangyexueyuan/758169.html" title="大客户 vs 中小企业:需求竟天差地别?以企业培训数字化为例" target="_blank">大客户 vs 中小企业:需求竟天差地别?以企业培训数字化为例</a>
            </li>
                        <li>
                <span><a href="/index.php/chanpinjingli.html" target="_blank">[产品经理]</a></span>
                <a class="link-dark" href="/index.php/chanpinjingli/758168.html" title="不要将员工的“猴子”背到自己身上:职场管理中的权责划分" target="_blank">不要将员工的“猴子”背到自己身上:职场管理中的权责划分</a>
            </li>
                        <li>
                <span><a href="/index.php/chanpinjingli.html" target="_blank">[产品经理]</a></span>
                <a class="link-dark" href="/index.php/chanpinjingli/758167.html" title="人工智能的三层架构:从应用层到基础服务层,解密智能革命" target="_blank">人工智能的三层架构:从应用层到基础服务层,解密智能革命</a>
            </li>
                        <li>
                <span><a href="/index.php/chanpinsheji.html" target="_blank">[产品设计]</a></span>
                <a class="link-dark" href="/index.php/chanpinsheji/758166.html" title="一文讲清楚iOS的SKAN4.0" target="_blank">一文讲清楚iOS的SKAN4.0</a>
            </li>
                    </ul>
    </div>
    <!-- E 最近更新 -->
</div>
<!-- S 热门标签 -->
<div class="panel panel-default hot-tags">
    <div class="panel-heading">
        <h3 class="panel-title">热门标签</h3>
    </div>
    <div class="panel-body">
        <div class="tags">
                        <a href="/index.php/channel/数量.html" class="tag" target="_blank"> <span>数量</span></a>
                        <a href="/index.php/channel/AI技术趋势.html" class="tag" target="_blank"> <span>AI技术趋势</span></a>
                        <a href="/index.php/channel/用户角色.html" class="tag" target="_blank"> <span>用户角色</span></a>
                        <a href="/index.php/channel/心智游移.html" class="tag" target="_blank"> <span>心智游移</span></a>
                        <a href="/index.php/channel/自然生态系统.html" class="tag" target="_blank"> <span>自然生态系统</span></a>
                        <a href="/index.php/channel/会员权益.html" class="tag" target="_blank"> <span>会员权益</span></a>
                        <a href="/index.php/channel/AirDrop.html" class="tag" target="_blank"> <span>AirDrop</span></a>
                        <a href="/index.php/channel/hashmap.html" class="tag" target="_blank"> <span>hashmap</span></a>
                        <a href="/index.php/channel/小龙虾.html" class="tag" target="_blank"> <span>小龙虾</span></a>
                        <a href="/index.php/channel/焦虑.html" class="tag" target="_blank"> <span>焦虑</span></a>
                        <a href="/index.php/channel/危机处理.html" class="tag" target="_blank"> <span>危机处理</span></a>
                        <a href="/index.php/channel/发展.html" class="tag" target="_blank"> <span>发展</span></a>
                        <a href="/index.php/channel/微信群折叠.html" class="tag" target="_blank"> <span>微信群折叠</span></a>
                        <a href="/index.php/channel/toast.html" class="tag" target="_blank"> <span>toast</span></a>
                        <a href="/index.php/channel/测评新算法.html" class="tag" target="_blank"> <span>测评新算法</span></a>
                        <a href="/index.php/channel/改版.html" class="tag" target="_blank"> <span>改版</span></a>
                        <a href="/index.php/channel/wireshark.html" class="tag" target="_blank"> <span>wireshark</span></a>
                        <a href="/index.php/channel/投放方式.html" class="tag" target="_blank"> <span>投放方式</span></a>
                        <a href="/index.php/channel/音频播放动效.html" class="tag" target="_blank"> <span>音频播放动效</span></a>
                        <a href="/index.php/channel/timer.html" class="tag" target="_blank"> <span>timer</span></a>
                        <a href="/index.php/channel/女性商业.html" class="tag" target="_blank"> <span>女性商业</span></a>
                        <a href="/index.php/channel/古典自媒体.html" class="tag" target="_blank"> <span>古典自媒体</span></a>
                        <a href="/index.php/channel/海外博主.html" class="tag" target="_blank"> <span>海外博主</span></a>
                        <a href="/index.php/channel/repeater.html" class="tag" target="_blank"> <span>repeater</span></a>
                        <a href="/index.php/channel/转账.html" class="tag" target="_blank"> <span>转账</span></a>
                        <a href="/index.php/channel/万能钥匙.html" class="tag" target="_blank"> <span>万能钥匙</span></a>
                        <a href="/index.php/channel/秋招.html" class="tag" target="_blank"> <span>秋招</span></a>
                        <a href="/index.php/channel/快服务.html" class="tag" target="_blank"> <span>快服务</span></a>
                        <a href="/index.php/channel/个人演讲.html" class="tag" target="_blank"> <span>个人演讲</span></a>
                        <a href="/index.php/channel/客户共识.html" class="tag" target="_blank"> <span>客户共识</span></a>
                    </div>
    </div>
</div>
<!-- E 热门标签 -->

        </aside>
    </div>
</div>

</main>

<footer>
    <div id="footer">
        <div class="container">
            <div class="row footer-inner">
                <div class="col-xs-12">
                    <div class="footer-logo pull-left mr-4">
                        <a href="/index.php/"><i class="fa fa-bookmark"></i></a>
                    </div>
                    <div class="pull-left">
                        Copyright © 2025 All rights reserved. 超级产品经理                        <a href="https://beian.miit.gov.cn" target="_blank" rel="noopener">浙ICP备14026978号-4</a>
                    <ul class="list-unstyled list-inline mt-2">
                        <li><a href="/p/aboutus.html" target="_blank">关于网站</a></li>
                        <li><a href="/contactus.html" rel="nofollow" target="_blank">联系我们</a></li>
                    </ul>
                    </div>

                </div>
            </div>
        </div>
    </div>
</footer>

<div id="floatbtn">
    <!-- S 浮动按钮 -->

        <a class="hover" href="/index.php/index/cms.archives/post.html" target="_blank">
        <i class="iconfont icon-pencil"></i>
        <em>立即<br>投稿</em>
    </a>
    
    <div class="floatbtn-item floatbtn-share">
        <i class="iconfont icon-share"></i>
        <div class="floatbtn-wrapper" style="height:50px;top:0">
            <div class="social-share" data-initialized="true" data-mode="prepend">
                <a href="#" class="social-share-icon icon-weibo" target="_blank"></a>
                <a href="#" class="social-share-icon icon-qq" target="_blank"></a>
                <a href="#" class="social-share-icon icon-qzone" target="_blank"></a>
                <a href="#" class="social-share-icon icon-wechat"></a>
            </div>
        </div>
    </div>

        <a href="javascript:;">
        <i class="iconfont icon-qrcode"></i>
        <div class="floatbtn-wrapper">
            <div class="qrcode"><img src="https://www.imspm.com/assets/img/gongzhonghao.jpg"></div>
            <p>微信公众账号</p>
            <p>微信扫一扫加关注</p>
        </div>
    </a>
    
    <a id="back-to-top" class="hover" href="javascript:;">
        <i class="iconfont icon-backtotop"></i>
        <em>返回<br>顶部</em>
    </a>
    <!-- E 浮动按钮 -->
</div>


<script type="text/javascript" src="/assets/libs/jquery/dist/jquery.min.js?v=1.0.10"></script>
<script type="text/javascript" src="/assets/libs/bootstrap/dist/js/bootstrap.min.js?v=1.0.10"></script>
<script type="text/javascript" src="/assets/libs/fastadmin-layer/dist/layer.js?v=1.0.10"></script>
<script type="text/javascript" src="/assets/libs/art-template/dist/template-native.js?v=1.0.10"></script>
<script type="text/javascript" src="/assets/addons/cms/js/jquery.autocomplete.js?v=1.0.10"></script>
<script type="text/javascript" src="/assets/addons/cms/js/swiper.min.js?v=1.0.10"></script>
<script type="text/javascript" src="/assets/addons/cms/js/share.min.js?v=1.0.10"></script>
<script type="text/javascript" src="/assets/addons/cms/js/cms.js?v=1.0.10"></script>


<script type="text/javascript" src="/assets/addons/cms/js/common.js?v=1.0.10"></script>

</body>
</html>