Python 数据 ETL 流水线:多数据库同步采集,极简代码完成数据清洗

发布时间:2026/7/31 0:12:20
Python 数据 ETL 流水线:多数据库同步采集,极简代码完成数据清洗 Python 数据 ETL 流水线多数据库同步采集极简代码完成数据清洗在企业数据处理与数据分析场景中ETL抽取 Extract、转换 Transform、加载 Load是数据流转的核心环节。随着业务系统增多MySQL、PostgreSQL、SQLite 等多数据库并存成为常态如何高效实现跨库数据同步、快速完成数据清洗是数据工程师与开发者的高频需求。很多人觉得 ETL 开发复杂需要依赖重型框架其实借助 Python 简洁的语法和成熟的第三方库几十行极简代码就能搭建稳定的数据 ETL 流水线完美实现多数据库采集、清洗、入库全流程。本文就带大家从零搭建一套轻量、高效、易维护的 Python ETL 方案适配中小规模数据同步场景。一、Python 做 ETL 的核心优势相比 Java、Scala 等重型语言Python 做数据 ETL 有三大不可替代的优势语法极简代码量少、可读性强无需复杂配置即可实现核心逻辑生态完善pandas负责数据清洗、sqlalchemy适配多数据库、pymysql/psycopg2实现数据库连接开箱即用轻量灵活无需部署大数据集群本地脚本、服务器定时任务均可运行适配快速开发需求。尤其适合中小团队、个人开发者处理日常数据同步、报表统计、数据迁移等工作低成本实现企业级数据流转。二、环境准备依赖库一键安装开始开发前只需安装 3 个核心库覆盖多数据库连接、数据处理、SQL 交互全流程# 安装数据处理、数据库连接、多数据库适配依赖 pip install pandas sqlalchemy pymysql psycopg2-binarypandas数据清洗核心工具处理缺失值、重复值、格式转换sqlalchemy统一数据库连接引擎支持 MySQL、PostgreSQL、SQLite 等几乎所有关系型数据库pymysql/psycopg2-binary分别适配 MySQL 和 PostgreSQL 驱动按需安装即可。三、核心实现三步搭建 ETL 流水线我们以业务常见场景为例从 MySQL 源库抽取用户订单数据同步至 PostgreSQL 目标库过程中完成缺失值填充、重复数据删除、字段格式标准化等清洗操作全程代码极简、逻辑清晰。1. 步骤 1多数据库连接配置首先封装数据库连接函数实现多数据源统一管理后续新增数据库只需添加配置无需修改核心代码import pandas as pd from sqlalchemy import create_engine # 数据库配置源库MySQL目标库PostgreSQL可按需扩展 DB_CONFIG { mysql_source: { driver: mysqlpymysql, host: localhost, port: 3306, user: root, password: 你的密码, db: business_db }, pg_target: { driver: postgresqlpsycopg2, host: localhost, port: 5432, user: postgres, password: 你的密码, db: data_warehouse } } # 通用数据库连接函数 def get_db_engine(db_key): config DB_CONFIG[db_key] conn_str f{config[driver]}://{config[user]}:{config[password]}{config[host]}:{config[port]}/{config[db]} return create_engine(conn_str) # 测试连接 mysql_engine get_db_engine(mysql_source) pg_engine get_db_engine(pg_target) print(多数据库连接成功)这种配置化方式后期维护成本极低切换数据库只需修改配置文件核心 ETL 逻辑完全不用动。2. 步骤 2数据抽取Extract从源数据库抽取需要的业务数据支持全量抽取、增量抽取按时间、ID 筛选这里以订单表为例def extract_data(engine, table_name, filter_sql): 从数据库抽取数据 :param engine: 数据库连接引擎 :param table_name: 目标表名 :param filter_sql: 过滤条件增量抽取用 :return: 抽取的DataFrame数据 sql fSELECT * FROM {table_name} {filter_sql} try: df pd.read_sql(sql, engine) print(f成功抽取数据{len(df)} 条) return df except Exception as e: print(f数据抽取失败{str(e)}) return None # 抽取MySQL源库的订单数据增量抽取只抽近7天数据 filter_condition WHERE create_time DATE_SUB(NOW(), INTERVAL 7 DAY) source_df extract_data(mysql_engine, order_info, filter_condition)实际业务中增量抽取是关键通过时间戳、自增 ID 筛选避免全表扫描提升同步效率。3. 步骤 3极简数据清洗Transform这是 ETL 的核心环节针对业务数据常见问题缺失值、重复值、字段格式错误、异常数据用 pandas 一键清洗代码极简但效果拉满def data_clean(df): 数据清洗核心逻辑 1. 删除重复数据 2. 填充缺失值 3. 标准化字段格式 4. 过滤异常数据 if df is None or df.empty: return None # 1. 删除完全重复的数据 df df.drop_duplicates() # 2. 缺失值处理订单金额填充为0用户昵称填充为未知用户 df[order_amount] df[order_amount].fillna(0) df[user_nickname] df[user_nickname].fillna(未知用户) # 3. 字段格式标准化金额转为浮点型创建时间转为标准日期格式 df[order_amount] df[order_amount].astype(float) df[create_time] pd.to_datetime(df[create_time]) # 4. 过滤异常数据剔除金额为负的无效订单 df df[df[order_amount] 0] print(f清洗完成有效数据{len(df)} 条) return df # 执行数据清洗 clean_df data_clean(source_df)这段代码覆盖了90% 的日常数据清洗场景可根据业务需求灵活增删规则比如添加字段重命名、数据脱敏、单位转换等。4. 步骤 4数据加载Load清洗后的数据直接写入目标数据库支持覆盖、追加、更新三种模式企业同步首选追加模式def load_data(df, engine, table_name, if_existsappend): 数据加载到目标库 :param if_exists: append-追加、replace-覆盖、fail-失败 if df is None or df.empty: print(无有效数据可加载) return try: df.to_sql( nametable_name, conengine, if_existsif_exists, indexFalse, # 不写入pandas索引 chunksize1000 # 分批次写入避免大数据量卡死 ) print(f数据加载成功共写入 {len(df)} 条到 {table_name} 表) except Exception as e: print(f数据加载失败{str(e)}) # 写入PostgreSQL目标库 load_data(clean_df, pg_engine, order_sync_result)chunksize参数分批次写入即使处理万级、十万级数据也不会卡顿稳定性拉满。四、完整流水线一键运行全流程将抽取、清洗、加载封装成函数一键启动 ETL 流水线代码简洁到极致def etl_pipeline(): ETL全流水线执行 print( 开始执行Python ETL流水线 ) # 1. 抽取 source_df extract_data(mysql_engine, order_info, filter_condition) # 2. 清洗 clean_df data_clean(source_df) # 3. 加载 load_data(clean_df, pg_engine, order_sync_result) print( ETL流水线执行完成 ) # 启动任务 if __name__ __main__: etl_pipeline()全程不到 100 行代码就实现了多数据库同步 数据清洗的完整 ETL 功能比传统框架开发效率提升 5 倍以上。五、进阶优化让 ETL 更稳定高效这套极简方案可直接用于生产环境再做 2 个简单优化适配更复杂场景定时同步结合schedule库实现定时任务比如每小时、每天自动同步日志记录添加日志模块记录同步时间、数据量、异常信息方便排查问题异常重试给数据库操作添加重试机制避免网络波动导致同步失败。六、总结Python 凭借极简语法和完善的数据生态完全能胜任中小规模的 ETL 开发无需重型框架、无需复杂配置几十行代码就能搭建多数据库同步、数据清洗的流水线。本文实现的 ETL 方案适配 MySQL、PostgreSQL、SQLite 等几乎所有关系型数据库清洗逻辑可灵活定制既适合新手入门学习 ETL 思想也能直接用于企业实际业务。后续可在此基础上扩展支持非关系型数据库MongoDB、添加数据可视化、对接消息队列实现实时同步轻松升级为企业级数据平台。如果觉得这套方案实用不妨收藏备用下次遇到数据同步、清洗需求直接用 Python 快速搞定Mg.cbmmx.cN/Article/details/852734.shtmlMg.cbmmx.cN/Article/details/763107.shtmlMg.cbmmx.cN/Article/details/500982.shtmlMg.cbmmx.cN/Article/details/742336.shtmlMg.cbmmx.cN/Article/details/037316.shtmlMg.cbmmx.cN/Article/details/419300.shtmlMg.cbmmx.cN/Article/details/026759.shtmlMg.cbmmx.cN/Article/details/953775.shtmlMg.cbmmx.cN/Article/details/056894.shtmlMg.cbmmx.cN/Article/details/839329.shtmlMg.cbmmx.cN/Article/details/891960.shtmlMg.cbmmx.cN/Article/details/630251.shtmlMg.cbmmx.cN/Article/details/562907.shtmlMg.cbmmx.cN/Article/details/834735.shtmlMg.cbmmx.cN/Article/details/250354.shtmlMg.cbmmx.cN/Article/details/966361.shtmlMg.cbmmx.cN/Article/details/562547.shtmlMg.cbmmx.cN/Article/details/449481.shtmlMg.cbmmx.cN/Article/details/240984.shtmlMg.cbmmx.cN/Article/details/545181.shtmlMg.cbmmx.cN/Article/details/319302.shtmlMg.cbmmx.cN/Article/details/890101.shtmlMg.cbmmx.cN/Article/details/426708.shtmlMg.cbmmx.cN/Article/details/239058.shtmlMg.cbmmx.cN/Article/details/851384.shtmlMg.cbmmx.cN/Article/details/278163.shtmlMg.cbmmx.cN/Article/details/119688.shtmlMg.cbmmx.cN/Article/details/076436.shtmlMg.cbmmx.cN/Article/details/810883.shtmlMg.cbmmx.cN/Article/details/846782.shtmlMg.cbmmx.cN/Article/details/374353.shtmlMg.cbmmx.cN/Article/details/149327.shtmlMg.cbmmx.cN/Article/details/224657.shtmlMg.cbmmx.cN/Article/details/553689.shtmlMg.cbmmx.cN/Article/details/964838.shtmlMg.cbmmx.cN/Article/details/779243.shtmlMg.cbmmx.cN/Article/details/371133.shtmlMg.cbmmx.cN/Article/details/614043.shtmlMg.cbmmx.cN/Article/details/659786.shtmlMg.cbmmx.cN/Article/details/263409.shtmlMg.cbmmx.cN/Article/details/983959.shtmlMg.cbmmx.cN/Article/details/493897.shtmlMg.cbmmx.cN/Article/details/063445.shtmlMg.cbmmx.cN/Article/details/978013.shtmlMg.cbmmx.cN/Article/details/112638.shtmlMg.cbmmx.cN/Article/details/034834.shtmlMg.cbmmx.cN/Article/details/082695.shtmlMg.cbmmx.cN/Article/details/456433.shtmlMg.cbmmx.cN/Article/details/813813.shtmlMg.cbmmx.cN/Article/details/986046.shtmlMg.cbmmx.cN/Article/details/646779.shtmlMg.cbmmx.cN/Article/details/856170.shtmlMg.cbmmx.cN/Article/details/970264.shtmlMg.cbmmx.cN/Article/details/719318.shtmlMg.cbmmx.cN/Article/details/990881.shtmlMg.cbmmx.cN/Article/details/863340.shtmlMg.cbmmx.cN/Article/details/337656.shtmlMg.cbmmx.cN/Article/details/743137.shtmlMg.cbmmx.cN/Article/details/677921.shtmlMg.cbmmx.cN/Article/details/806246.shtmlMg.cbmmx.cN/Article/details/772556.shtmlMg.cbmmx.cN/Article/details/780143.shtmlMg.cbmmx.cN/Article/details/269962.shtmlMg.cbmmx.cN/Article/details/060879.shtmlMg.cbmmx.cN/Article/details/823877.shtmlMg.cbmmx.cN/Article/details/323232.shtmlMg.cbmmx.cN/Article/details/566749.shtmlMg.cbmmx.cN/Article/details/047960.shtmlMg.cbmmx.cN/Article/details/361081.shtmlMg.cbmmx.cN/Article/details/684658.shtmlMg.cbmmx.cN/Article/details/959962.shtmlMg.cbmmx.cN/Article/details/219484.shtmlMg.cbmmx.cN/Article/details/653749.shtmlMg.cbmmx.cN/Article/details/693858.shtmlMg.cbmmx.cN/Article/details/306788.shtmlMg.cbmmx.cN/Article/details/594991.shtmlMg.cbmmx.cN/Article/details/960158.shtmlMg.cbmmx.cN/Article/details/149141.shtmlMg.cbmmx.cN/Article/details/255379.shtmlMg.cbmmx.cN/Article/details/615226.shtmlMg.cbmmx.cN/Article/details/368487.shtmlMg.cbmmx.cN/Article/details/467306.shtmlMg.cbmmx.cN/Article/details/634219.shtmlMg.cbmmx.cN/Article/details/984514.shtmlMg.cbmmx.cN/Article/details/102731.shtmlMg.cbmmx.cN/Article/details/595053.shtmlMg.cbmmx.cN/Article/details/061409.shtmlMg.cbmmx.cN/Article/details/196513.shtmlMg.cbmmx.cN/Article/details/931505.shtmlMg.cbmmx.cN/Article/details/452390.shtmlMg.cbmmx.cN/Article/details/887850.shtmlMg.cbmmx.cN/Article/details/334385.shtmlMg.cbmmx.cN/Article/details/250847.shtmlMg.cbmmx.cN/Article/details/584233.shtmlMg.cbmmx.cN/Article/details/303185.shtmlMg.cbmmx.cN/Article/details/921326.shtmlMg.cbmmx.cN/Article/details/962245.shtmlMg.cbmmx.cN/Article/details/087011.shtmlMg.cbmmx.cN/Article/details/198154.shtmlMg.cbmmx.cN/Article/details/426295.shtmlMg.cbmmx.cN/Article/details/868257.shtmlMg.cbmmx.cN/Article/details/587039.shtmlMg.cbmmx.cN/Article/details/166593.shtmlMg.cbmmx.cN/Article/details/164076.shtmlMg.cbmmx.cN/Article/details/172031.shtmlMg.cbmmx.cN/Article/details/999975.shtmlMg.cbmmx.cN/Article/details/348434.shtmlMg.cbmmx.cN/Article/details/583890.shtmlMg.cbmmx.cN/Article/details/775864.shtmlMg.cbmmx.cN/Article/details/675079.shtmlMg.cbmmx.cN/Article/details/423529.shtmlMg.cbmmx.cN/Article/details/588412.shtmlMg.cbmmx.cN/Article/details/398010.shtmlMg.cbmmx.cN/Article/details/729147.shtmlMg.cbmmx.cN/Article/details/463493.shtmlMg.cbmmx.cN/Article/details/195163.shtmlMg.cbmmx.cN/Article/details/964474.shtmlMg.cbmmx.cN/Article/details/511460.shtmlMg.cbmmx.cN/Article/details/161097.shtmlMg.cbmmx.cN/Article/details/687612.shtmlMg.cbmmx.cN/Article/details/513630.shtmlMg.cbmmx.cN/Article/details/634425.shtmlMg.cbmmx.cN/Article/details/963941.shtmlMg.cbmmx.cN/Article/details/331879.shtmlMg.cbmmx.cN/Article/details/333034.shtmlMg.cbmmx.cN/Article/details/041833.shtmlMg.cbmmx.cN/Article/details/698861.shtmlMg.cbmmx.cN/Article/details/463578.shtmlMg.cbmmx.cN/Article/details/680091.shtmlMg.cbmmx.cN/Article/details/657899.shtmlMg.cbmmx.cN/Article/details/375074.shtmlMg.cbmmx.cN/Article/details/381170.shtmlMg.cbmmx.cN/Article/details/436432.shtmlMg.cbmmx.cN/Article/details/158314.shtmlMg.cbmmx.cN/Article/details/145331.shtmlMg.cbmmx.cN/Article/details/430245.shtmlMg.cbmmx.cN/Article/details/540212.shtmlMg.cbmmx.cN/Article/details/475595.shtmlMg.cbmmx.cN/Article/details/080334.shtmlMg.cbmmx.cN/Article/details/358157.shtmlMg.cbmmx.cN/Article/details/322952.shtmlMg.cbmmx.cN/Article/details/302735.shtmlMg.cbmmx.cN/Article/details/775167.shtmlMg.cbmmx.cN/Article/details/763594.shtmlMg.cbmmx.cN/Article/details/399184.shtmlMg.cbmmx.cN/Article/details/443596.shtmlMg.cbmmx.cN/Article/details/153059.shtmlMg.cbmmx.cN/Article/details/219668.shtmlMg.cbmmx.cN/Article/details/012953.shtmlMg.cbmmx.cN/Article/details/568717.shtmlMg.cbmmx.cN/Article/details/356079.shtmlMg.cbmmx.cN/Article/details/213229.shtmlMg.cbmmx.cN/Article/details/975771.shtmlMg.cbmmx.cN/Article/details/700310.shtmlMg.cbmmx.cN/Article/details/282318.shtmlMg.cbmmx.cN/Article/details/405637.shtmlMg.cbmmx.cN/Article/details/185697.shtmlMg.cbmmx.cN/Article/details/661776.shtmlMg.cbmmx.cN/Article/details/429267.shtmlMg.cbmmx.cN/Article/details/810641.shtmlMg.cbmmx.cN/Article/details/456801.shtmlMg.cbmmx.cN/Article/details/967610.shtmlMg.cbmmx.cN/Article/details/141605.shtmlMg.cbmmx.cN/Article/details/752570.shtmlMg.cbmmx.cN/Article/details/417431.shtmlMg.cbmmx.cN/Article/details/637993.shtmlMg.cbmmx.cN/Article/details/419030.shtmlMg.cbmmx.cN/Article/details/765899.shtmlMg.cbmmx.cN/Article/details/970668.shtmlMg.cbmmx.cN/Article/details/680595.shtmlMg.cbmmx.cN/Article/details/925918.shtmlMg.cbmmx.cN/Article/details/037454.shtmlMg.cbmmx.cN/Article/details/661240.shtmlMg.cbmmx.cN/Article/details/004696.shtmlMg.cbmmx.cN/Article/details/092176.shtmlMg.cbmmx.cN/Article/details/135036.shtmlMg.cbmmx.cN/Article/details/441740.shtmlMg.cbmmx.cN/Article/details/073197.shtmlMg.cbmmx.cN/Article/details/475839.shtmlMg.cbmmx.cN/Article/details/977070.shtmlMg.cbmmx.cN/Article/details/239803.shtmlMg.cbmmx.cN/Article/details/086319.shtmlMg.cbmmx.cN/Article/details/104936.shtmlMg.cbmmx.cN/Article/details/649833.shtmlMg.cbmmx.cN/Article/details/339157.shtmlMg.cbmmx.cN/Article/details/216661.shtmlMg.cbmmx.cN/Article/details/384599.shtmlMg.cbmmx.cN/Article/details/345611.shtmlMg.cbmmx.cN/Article/details/538827.shtmlMg.cbmmx.cN/Article/details/359154.shtmlMg.cbmmx.cN/Article/details/015068.shtmlMg.cbmmx.cN/Article/details/789394.shtmlMg.cbmmx.cN/Article/details/777277.shtmlMg.cbmmx.cN/Article/details/906826.shtmlMg.cbmmx.cN/Article/details/946801.shtmlMg.cbmmx.cN/Article/details/522444.shtmlMg.cbmmx.cN/Article/details/109761.shtmlMg.cbmmx.cN/Article/details/466830.shtmlMg.cbmmx.cN/Article/details/382420.shtmlMg.cbmmx.cN/Article/details/947405.shtmlMg.cbmmx.cN/Article/details/916661.shtmlMg.cbmmx.cN/Article/details/164393.shtmlMg.cbmmx.cN/Article/details/393864.shtmlMg.cbmmx.cN/Article/details/085657.shtmlMg.cbmmx.cN/Article/details/986659.shtmlMg.cbmmx.cN/Article/details/962429.shtmlMg.cbmmx.cN/Article/details/009658.shtmlMg.cbmmx.cN/Article/details/626107.shtmlMg.cbmmx.cN/Article/details/730469.shtmlMg.cbmmx.cN/Article/details/569521.shtmlMg.cbmmx.cN/Article/details/016448.shtmlMg.cbmmx.cN/Article/details/911971.shtmlMg.cbmmx.cN/Article/details/973533.shtmlMg.cbmmx.cN/Article/details/893226.shtmlMg.cbmmx.cN/Article/details/969904.shtmlMg.cbmmx.cN/Article/details/426549.shtmlMg.cbmmx.cN/Article/details/121877.shtmlMg.cbmmx.cN/Article/details/583155.shtmlMg.cbmmx.cN/Article/details/023689.shtmlMg.cbmmx.cN/Article/details/426942.shtmlMg.cbmmx.cN/Article/details/402265.shtmlMg.cbmmx.cN/Article/details/478120.shtmlMg.cbmmx.cN/Article/details/826497.shtmlMg.cbmmx.cN/Article/details/029948.shtmlMg.cbmmx.cN/Article/details/409575.shtmlMg.cbmmx.cN/Article/details/628611.shtmlMg.cbmmx.cN/Article/details/042502.shtmlMg.cbmmx.cN/Article/details/979551.shtmlMg.cbmmx.cN/Article/details/142938.shtmlMg.cbmmx.cN/Article/details/577718.shtmlMg.cbmmx.cN/Article/details/848943.shtmlMg.cbmmx.cN/Article/details/148015.shtmlMg.cbmmx.cN/Article/details/215512.shtmlMg.cbmmx.cN/Article/details/433665.shtmlMg.cbmmx.cN/Article/details/278977.shtmlMg.cbmmx.cN/Article/details/222509.shtmlMg.cbmmx.cN/Article/details/966415.shtmlMg.cbmmx.cN/Article/details/158546.shtmlMg.cbmmx.cN/Article/details/801325.shtmlMg.cbmmx.cN/Article/details/962775.shtmlMg.cbmmx.cN/Article/details/462028.shtmlMg.cbmmx.cN/Article/details/627864.shtmlMg.cbmmx.cN/Article/details/340877.shtmlMg.cbmmx.cN/Article/details/088140.shtmlMg.cbmmx.cN/Article/details/785261.shtmlMg.cbmmx.cN/Article/details/176852.shtmlMg.cbmmx.cN/Article/details/375750.shtmlMg.cbmmx.cN/Article/details/765248.shtmlMg.cbmmx.cN/Article/details/705575.shtmlMg.cbmmx.cN/Article/details/579773.shtmlMg.cbmmx.cN/Article/details/839493.shtmlMg.cbmmx.cN/Article/details/848142.shtmlMg.cbmmx.cN/Article/details/393732.shtmlMg.cbmmx.cN/Article/details/494802.shtmlMg.cbmmx.cN/Article/details/509115.shtmlMg.cbmmx.cN/Article/details/543762.shtmlMg.cbmmx.cN/Article/details/297638.shtmlMg.cbmmx.cN/Article/details/890577.shtmlMg.cbmmx.cN/Article/details/232251.shtmlMg.cbmmx.cN/Article/details/163635.shtmlMg.cbmmx.cN/Article/details/428160.shtmlMg.cbmmx.cN/Article/details/356105.shtmlMg.cbmmx.cN/Article/details/244037.shtmlMg.cbmmx.cN/Article/details/569386.shtmlMg.cbmmx.cN/Article/details/364774.shtmlMg.cbmmx.cN/Article/details/028126.shtmlMg.cbmmx.cN/Article/details/622191.shtmlMg.cbmmx.cN/Article/details/659830.shtmlMg.cbmmx.cN/Article/details/489028.shtmlMg.cbmmx.cN/Article/details/433875.shtmlMg.cbmmx.cN/Article/details/787699.shtmlMg.cbmmx.cN/Article/details/935625.shtmlMg.cbmmx.cN/Article/details/111922.shtmlMg.cbmmx.cN/Article/details/997638.shtmlMg.cbmmx.cN/Article/details/089382.shtmlMg.cbmmx.cN/Article/details/750385.shtmlMg.cbmmx.cN/Article/details/615123.shtmlMg.cbmmx.cN/Article/details/318739.shtmlMg.cbmmx.cN/Article/details/603117.shtmlMg.cbmmx.cN/Article/details/597310.shtmlMg.cbmmx.cN/Article/details/913406.shtmlMg.cbmmx.cN/Article/details/467996.shtmlMg.cbmmx.cN/Article/details/370712.shtmlMg.cbmmx.cN/Article/details/318699.shtmlMg.cbmmx.cN/Article/details/638355.shtmlMg.cbmmx.cN/Article/details/685127.shtmlMg.cbmmx.cN/Article/details/047333.shtmlMg.cbmmx.cN/Article/details/593480.shtmlMg.cbmmx.cN/Article/details/240367.shtmlMg.cbmmx.cN/Article/details/799017.shtmlMg.cbmmx.cN/Article/details/816381.shtmlMg.cbmmx.cN/Article/details/275756.shtmlMg.cbmmx.cN/Article/details/192478.shtmlMg.cbmmx.cN/Article/details/786400.shtmlMg.cbmmx.cN/Article/details/469577.shtmlMg.cbmmx.cN/Article/details/926503.shtmlMg.cbmmx.cN/Article/details/320686.shtmlMg.cbmmx.cN/Article/details/237901.shtmlMg.cbmmx.cN/Article/details/137302.shtmlMg.cbmmx.cN/Article/details/409622.shtmlMg.cbmmx.cN/Article/details/272711.shtmlMg.cbmmx.cN/Article/details/258829.shtmlMg.cbmmx.cN/Article/details/208739.shtmlMg.cbmmx.cN/Article/details/335022.shtmlMg.cbmmx.cN/Article/details/771061.shtmlMg.cbmmx.cN/Article/details/253959.shtmlMg.cbmmx.cN/Article/details/719279.shtmlMg.cbmmx.cN/Article/details/017548.shtmlMg.cbmmx.cN/Article/details/476881.shtmlMg.cbmmx.cN/Article/details/626651.shtmlMg.cbmmx.cN/Article/details/115064.shtmlMg.cbmmx.cN/Article/details/165760.shtmlMg.cbmmx.cN/Article/details/260387.shtmlMg.cbmmx.cN/Article/details/137262.shtmlMg.cbmmx.cN/Article/details/959288.shtmlMg.cbmmx.cN/Article/details/634686.shtmlMg.cbmmx.cN/Article/details/928593.shtmlMg.cbmmx.cN/Article/details/441120.shtmlMg.cbmmx.cN/Article/details/444819.shtmlMg.cbmmx.cN/Article/details/046671.shtmlMg.cbmmx.cN/Article/details/993501.shtmlMg.cbmmx.cN/Article/details/175610.shtmlMg.cbmmx.cN/Article/details/440142.shtmlMg.cbmmx.cN/Article/details/512812.shtmlMg.cbmmx.cN/Article/details/159055.shtmlMg.cbmmx.cN/Article/details/661133.shtmlMg.cbmmx.cN/Article/details/233695.shtmlMg.cbmmx.cN/Article/details/090869.shtmlMg.cbmmx.cN/Article/details/521068.shtml