当前位置: 首页 > news >正文

古诗生成器

import random
import sys
from typing import List, Dict, Tuple, Optional

class PoemGenerator:
    def __init__(self):
        # 主题分类词库
        self.themes = {
            "山水": {
                "名词": ["山", "峰", "岭", "川", "河", "江", "湖", "海", "溪", "泉", "潭", "瀑", "云", "雾", "霞", "霭", "岩", "石", "崖", "壁", "谷", "涧"],
                "形容词": ["青", "翠", "碧", "绿", "苍", "黛", "幽", "深", "险", "峻", "秀", "奇", "巍", "峨", "浩", "渺", "茫", "阔"]
            },
            "花鸟": {
                "名词": ["花", "草", "树", "木", "枝", "叶", "根", "芽", "蕊", "瓣", "桃", "李", "杏", "梅", "兰", "菊", "竹", "荷", "鸟", "莺", "燕", "蝶", "蜂", "蝉", "鸦", "鹊"],
                "形容词": ["艳", "香", "娇", "嫩", "鲜", "芳", "柔", "翠", "青", "绿", "红", "紫", "黄", "白", "粉"]
            },
            "边塞": {
                "名词": ["关", "塞", "城", "堡", "营", "帐", "旗", "鼓", "角", "弓", "箭", "刀", "剑", "马", "驼", "兵", "卒", "将", "士", "烟", "沙", "霜", "雪"],
                "动词": ["征", "战", "戍", "守", "伐", "攻", "围", "破", "杀", "斩", "射", "骑", "驱", "驰", "鸣", "吹", "擂", "望", "思"]
            },
            "田园": {
                "名词": ["村", "庄", "舍", "庐", "田", "亩", "畦", "埂", "苗", "稻", "麦", "桑", "麻", "豆", "瓜", "蔬", "牛", "羊", "鸡", "犬", "犁", "锄", "镰"],
                "动词": ["耕", "种", "耘", "收", "割", "采", "摘", "插", "播", "牧", "养", "喂", "饮", "舂", "炊", "烧"]
            },
            "思乡": {
                "名词": ["乡", "家", "园", "井", "亲", "人", "朋", "友", "书", "信", "雁", "鱼", "月", "日", "云", "帆", "路", "途", "程", "客", "舟", "车"],
                "动词": ["思", "念", "忆", "望", "盼", "归", "还", "别", "离", "送", "迎", "逢", "遇", "寄", "传"]
            }
        }
        
        # 基础词库(所有主题共享)
        self.base_vocabulary = {
            "名词": ["日", "月", "星", "辰", "天", "地", "风", "雨", "雷", "电", "春", "夏", "秋", "冬", "晨", "昏", "昼", "夜", "年", "岁", "时", "刻", "光", "影", "声", "色", "香", "味", "情", "愁", "恨", "喜", "乐", "诗", "酒", "茶", "琴", "棋", "书", "画", "梦", "魂", "心", "志", "身", "骨", "血", "泪"],
            "动词": ["行", "坐", "卧", "立", "走", "跑", "飞", "游", "飘", "落", "生", "死", "存", "亡", "有", "无", "在", "留", "去", "来", "归", "离", "合", "分", "聚", "散", "开", "闭", "升", "降", "出", "入", "见", "闻", "听", "说", "读", "写", "吟", "唱", "歌", "舞", "笑", "哭", "叹", "悲", "欢", "愁", "思", "忆", "望", "看", "观", "察", "觉", "知", "感", "悟", "想", "念", "忘", "记", "问", "答", "言", "语", "论", "议", "谈", "笑", "饮", "食", "睡", "醒", "醉", "迷", "梦", "觉", "醒", "醉", "迷", "梦", "觉"],
            "形容词": ["高", "低", "远", "近", "长", "短", "大", "小", "多", "少", "轻", "重", "厚", "薄", "深", "浅", "浓", "淡", "明", "暗", "晴", "阴", "圆", "缺", "方", "正", "斜", "直", "曲", "折", "新", "旧", "老", "少", "强", "弱", "勇", "怯", "智", "愚", "贤", "不肖", "清", "浊", "香", "臭", "甜", "苦", "辣", "酸", "咸", "冷", "暖", "温", "凉", "寒", "暑", "燥", "湿", "静", "动", "忙", "闲", "快", "慢", "急", "缓", "安", "危", "险", "夷", "平", "稳", "奇", "怪", "妙", "绝", "好", "坏", "美", "丑", "善", "恶", "真", "假", "虚", "实", "荣", "辱", "贵", "贱", "富", "贫", "强", "弱", "胜", "败", "成", "破", "完", "缺", "全", "半", "满", "空", "有", "无", "生", "死", "存", "亡"],
            "副词": ["独", "共", "同", "皆", "俱", "全", "都", "尽", "空", "只", "仅", "唯", "惟", "亦", "也", "又", "再", "还", "复", "更", "愈", "越", "最", "极", "甚", "颇", "太", "过", "略", "稍", "微", "渐", "忽", "顿", "乍", "初", "始", "终", "已", "曾", "未", "尝", "方", "正", "恰", "适", "刚", "才", "将", "欲", "应", "当", "宜", "合", "该", "必", "须", "定", "确", "实", "诚", "真", "妄", "空", "虚", "实", "徒", "枉", "幸", "偶", "或", "常", "每", "时", "频", "屡", "数", "渐", "骤", "忽", "顿", "乍", "初", "始", "终", "已", "曾", "未", "尝"],
            "介词": ["在", "于", "当", "值", "临", "对", "向", "朝", "往", "至", "到", "过", "经", "由", "自", "从", "自从", "起", "迄", "止", "至", "及", "和", "与", "同", "跟", "连", "比", "如", "似", "若", "像", "犹", "尚", "况", "比", "较", "除", "外", "余", "剩", "左", "右", "前", "后", "上", "下", "里", "外", "中", "间", "旁", "侧", "东", "西", "南", "北", "左", "右", "前", "后", "上", "下", "里", "外", "中", "间", "旁", "侧"],
            "助词": ["之", "乎", "者", "也", "矣", "焉", "哉", "兮", "而", "以", "其", "且", "然", "或", "既", "亦", "犹", "尚", "况", "固", "诚", "夫", "盖", "唯", "惟", "故", "是", "此", "彼", "其", "斯", "兹", "夫", "盖", "然", "则", "况", "抑", "岂", "宁", "庸", "讵", "独", "徒", "空", "只", "仅", "唯", "惟", "亦", "也", "又", "再", "还", "复", "更", "愈", "越", "最", "极", "甚", "颇", "太", "过", "略", "稍", "微", "渐", "忽", "顿", "乍", "初", "始", "终", "已", "曾", "未", "尝"],
            "语气词": ["兮", "哉", "也", "乎", "矣", "耶", "耳", "欤", "噫", "嘘", "呵", "哦", "呀", "哇", "矣夫", "而已", "云尔", "焉耳", "也哉", "乎哉", "耶哉", "欤哉", "噫嘻", "呜呼", "嗟乎", "嗟哉", "噫吁嚱"]
        }
        
        # 韵脚字典(平水韵简化版)
        self.rhymes = {
            "上平一东": ["东", "同", "铜", "桐", "筒", "童", "瞳", "中", "衷", "忠", "终", "种", "崇", "嵩", "弓", "躬", "宫", "融", "雄", "熊", "穹", "穷", "冯", "风", "枫", "丰", "充", "隆", "空", "公", "功", "工", "攻", "蒙", "笼", "聋", "珑", "洪", "红", "虹", "鸿", "丛", "翁", "匆", "葱", "聪", "通", "蓬", "烘", "潼", "胧", "峒", "螽", "梦", "讧", "冻", "忡", "懵", "庞", "种", "盅", "芎", "倥", "艨", "绒", "葱", "匆", "骢", "鬃", "蓬", "烘", "潼", "胧", "峒", "螽", "梦", "讧", "冻", "忡", "懵", "庞", "种", "盅", "芎", "倥", "艨", "绒", "葱", "匆", "骢", "鬃"],
            "上平二冬": ["冬", "咚", "彤", "农", "宗", "钟", "龙", "舂", "松", "冲", "容", "榕", "蓉", "溶", "庸", "封", "胸", "雍", "浓重", "从", "逢", "缝", "踪", "茸", "峰", "锋", "烽", "蛩", "慵", "恭", "供", "蚣", "喁", "墉", "镛", "佣", "溶", "邛", "共", "龚", "凶", "匈", "汹", "胸", "雍", "浓重", "从", "逢", "缝", "踪", "茸", "峰", "锋", "烽", "蛩", "慵", "恭", "供", "蚣", "喁", "墉", "镛", "佣", "溶", "邛", "共", "龚", "凶", "匈", "汹"],
            "上平三江": ["江", "缸", "窗", "邦", "降", "双", "泷", "庞", "撞", "豇", "扛", "杠", "腔", "梆", "桩", "幢", "跫", "艭", "龙", "庞", "撞", "豇", "扛", "杠", "腔", "梆", "桩", "幢", "跫", "艭"],
            "上平四支": ["支", "枝", "移", "为", "垂", "吹", "陂", "碑", "奇", "宜", "仪", "皮", "儿", "离", "施", "知", "驰", "池", "规", "危", "夷", "师", "姿", "迟", "眉", "悲", "之", "芝", "时", "诗", "棋", "旗", "辞", "词", "期", "祠", "基", "疑", "姬", "丝", "司", "葵", "医", "帷", "思", "滋", "持", "随", "痴", "维", "卮", "麋", "螭", "麾", "墀", "弥", "慈", "遗", "肌", "脂", "雌", "披", "嬉", "尸", "狸", "炊", "湄", "篱", "兹", "差", "疲", "茨", "卑", "亏", "蕤", "陲", "骑", "曦", "歧", "岐", "谁", "斯", "私", "窥", "熙", "欺", "疵", "赀", "羁", "彝", "髭", "颐", "资", "糜", "饥", "衰", "锥", "姨", "楣", "夔", "涯", "伊", "蓍", "追", "缁", "箕", "椎", "罴", "篪", "萎", "匙", "脾", "坻", "嶷", "治", "骊", "尸", "綦", "怡", "尼", "漪", "牺", "饴", "鸱", "推", "縻", "璃", "祁", "绥", "逵", "羲", "羸", "肢", "骐", "訾", "咨", "睢", "馗", "胝", "鳍", "蛇", "陴", "淇", "淄", "丽", "筛", "厮", "氏", "痍", "貔", "比", "僖", "贻", "禧", "鹂", "瓷", "琦", "嵋", "怩", "熹", "孜", "台", "蚩", "罹", "魑", "丕", "琪", "耆", "衰", "惟", "剂", "提", "禧", "居", "栀", "戏", "畸", "椅", "崖", "孳", "思", "滋", "持", "随", "痴", "维", "卮", "麋", "螭", "麾", "墀", "弥", "慈", "遗", "肌", "脂", "雌", "披", "嬉", "尸", "狸", "炊", "湄", "篱", "兹", "差", "疲", "茨", "卑", "亏", "蕤", "陲", "骑", "曦", "歧", "岐", "谁", "斯", "私", "窥", "熙", "欺", "疵", "赀", "羁", "彝", "髭", "颐", "资", "糜", "饥", "衰", "锥", "姨", "楣", "夔", "涯", "伊", "蓍", "追", "缁", "箕", "椎", "罴", "篪", "萎", "匙", "脾", "坻", "嶷", "治", "骊", "尸", "綦", "怡", "尼", "漪", "牺", "饴", "鸱", "推", "縻", "璃", "祁", "绥", "逵", "羲", "羸", "肢", "骐", "訾", "咨", "睢", "馗", "胝", "鳍", "蛇", "陴", "淇", "淄", "丽", "筛", "厮", "氏", "痍", "貔", "比", "僖", "贻", "禧", "鹂", "瓷", "琦", "嵋", "怩", "熹", "孜", "台", "蚩", "罹", "魑", "丕", "琪", "耆", "衰", "惟", "剂", "提", "禧", "居", "栀", "戏", "畸", "椅", "崖", "孳"],
            # 简化起见,只列出部分韵部...
        }
        
        # 平仄字典(简化版)
        self.pingze = {
            "平": ["东", "同", "铜", "桐", "筒", "童", "瞳", "中", "衷", "忠", "终", "种", "崇", "嵩", "弓", "躬", "宫", "融", "雄", "熊", "穹", "穷", "冯", "风", "枫", "丰", "充", "隆", "空", "公", "功", "工", "攻", "蒙", "笼", "聋", "珑", "洪", "红", "虹", "鸿", "丛", "翁", "匆", "葱", "聪", "通", "蓬", "烘", "潼", "胧", "峒", "螽", "梦", "讧", "冻", "忡", "懵", "庞", "种", "盅", "芎", "倥", "艨", "绒", "葱", "匆", "骢", "鬃", "冬", "咚", "彤", "农", "宗", "钟", "龙", "舂", "松", "冲", "容", "榕", "蓉", "溶", "庸", "封", "胸", "雍", "浓重", "从", "逢", "缝", "踪", "茸", "峰", "锋", "烽", "蛩", "慵", "恭", "供", "蚣", "喁", "墉", "镛", "佣", "溶", "邛", "共", "龚", "凶", "匈", "汹", "江", "缸", "窗", "邦", "降", "双", "泷", "庞", "撞", "豇", "扛", "杠", "腔", "梆", "桩", "幢", "跫", "艭", "支", "枝", "移", "为", "垂", "吹", "陂", "碑", "奇", "宜", "仪", "皮", "儿", "离", "施", "知", "驰", "池", "规", "危", "夷", "师", "姿", "迟", "眉", "悲", "之", "芝", "时", "诗", "棋", "旗", "辞", "词", "期", "祠", "基", "疑", "姬", "丝", "司", "葵", "医", "帷", "思", "滋", "持", "随", "痴", "维", "卮", "麋", "螭", "麾", "墀", "弥", "慈", "遗", "肌", "脂", "雌", "披", "嬉", "尸", "狸", "炊", "湄", "篱", "兹", "差", "疲", "茨", "卑", "亏", "蕤", "陲", "骑", "曦", "歧", "岐", "谁", "斯", "私", "窥", "熙", "欺", "疵", "赀", "羁", "彝", "髭", "颐", "资", "糜", "饥", "衰", "锥", "姨", "楣", "夔", "涯", "伊", "蓍", "追", "缁", "箕", "椎", "罴", "篪", "萎", "匙", "脾", "坻", "嶷", "治", "骊", "尸", "綦", "怡", "尼", "漪", "牺", "饴", "鸱", "推", "縻", "璃", "祁", "绥", "逵", "羲", "羸", "肢", "骐", "訾", "咨", "睢", "馗", "胝", "鳍", "蛇", "陴", "淇", "淄", "丽", "筛", "厮", "氏", "痍", "貔", "比", "僖", "贻", "禧", "鹂", "瓷", "琦", "嵋", "怩", "熹", "孜", "台", "蚩", "罹", "魑", "丕", "琪", "耆", "衰", "惟", "剂", "提", "禧", "居", "栀", "戏", "畸", "椅", "崖", "孳"],
            "仄": ["上", "去", "入", "近", "远", "大", "小", "古", "老", "少", "壮", "病", "死", "苦", "乐", "笑", "哭", "起", "坐", "卧", "立", "行", "走", "来", "去", "上", "下", "左", "右", "前", "后", "东", "西", "南", "北", "高", "低", "长", "短", "多", "少", "轻", "重", "厚", "薄", "深", "浅", "浓", "淡", "明", "暗", "晴", "阴", "圆", "缺", "方", "正", "斜", "直", "曲", "折", "新", "旧", "强", "弱", "勇", "怯", "智", "愚", "贤", "不肖", "清", "浊", "香", "臭", "甜", "苦", "辣", "酸", "咸", "冷", "暖", "温", "凉", "寒", "暑", "燥", "湿", "静", "动", "忙", "闲", "快", "慢", "急", "缓", "安", "危", "险", "夷", "平", "稳", "奇", "怪", "妙", "绝", "好", "坏", "美", "丑", "善", "恶", "真", "假", "虚", "实", "荣", "辱", "贵", "贱", "富", "贫", "胜", "败", "成", "破", "完", "缺", "全", "半", "满", "空", "有", "无", "生", "死", "存", "亡", "日", "月", "星", "辰", "天", "地", "风", "雨", "雷", "电", "春", "夏", "秋", "冬", "晨", "昏", "昼", "夜", "年", "岁", "时", "刻", "光", "影", "声", "色", "香", "味", "情", "愁", "恨", "喜", "乐", "诗", "酒", "茶", "琴", "棋", "书", "画", "梦", "魂", "心", "志", "身", "骨", "血", "泪", "行", "坐", "卧", "立", "走", "跑", "飞", "游", "飘", "落", "生", "死", "存", "亡", "有", "无", "在", "留", "去", "来", "归", "离", "合", "分", "聚", "散", "开", "闭", "升", "降", "出", "入", "见", "闻", "听", "说", "读", "写", "吟", "唱", "歌", "舞", "笑", "哭", "叹", "悲", "欢", "愁", "思", "忆", "望", "看", "观", "察", "觉", "知", "感", "悟", "想", "念", "忘", "记", "问", "答", "言", "语", "论", "议", "谈", "笑", "饮", "食", "睡", "醒", "醉", "迷", "梦", "觉", "醒", "醉", "迷", "梦", "觉"]
        }
        
        # 五言诗平仄格式(简化版)
        self.wuyan_pingze_patterns = [
            # 平起式
            ["平", "平", "仄", "仄", "平"],  # 首句入韵
            ["平", "仄", "平", "平", "仄"],  # 首句不入韵
            # 仄起式
            ["仄", "仄", "仄", "平", "平"],  # 首句入韵
            ["仄", "平", "平", "仄", "仄"]   # 首句不入韵
        ]
        
        # 七言诗平仄格式(简化版)
        self.qiyan_pingze_patterns = [
            # 平起式
            ["平", "平", "仄", "仄", "仄", "平", "平"],  # 首句入韵
            ["平", "平", "仄", "仄", "平", "平", "仄"],  # 首句不入韵
            # 仄起式
            ["仄", "仄", "平", "平", "仄", "仄", "平"],  # 首句入韵
            ["仄", "仄", "平", "平", "平", "仄", "仄"]   # 首句不入韵
        ]
    
    def generate_line(self, template, theme=None, pingze_pattern=None, position=None):
        """生成一行诗句,支持主题和平仄要求"""
        line = ""
        for i, word_type in enumerate(template):
            # 优先从主题词库中选择
            vocabulary = self.base_vocabulary.copy()
            if theme and word_type in self.themes[theme]:
                vocabulary[word_type] = self.themes[theme][word_type] + vocabulary[word_type]
            
            # 随机选择一个词
            word = random.choice(vocabulary[word_type])
            
            # 如果有平仄要求且当前位置在平仄模式中指定了,检查平仄
            if pingze_pattern and position is not None and i < len(pingze_pattern):
                required_tone = pingze_pattern[i]
                # 如果当前词的平仄不符合要求,尝试替换
                if word in self.pingze["平"] and required_tone == "仄":
                    # 需要仄声字
                    candidates = [w for w in vocabulary[word_type] if w in self.pingze["仄"]]
                    if candidates:
                        word = random.choice(candidates)
                elif word in self.pingze["仄"] and required_tone == "平":
                    # 需要平声字
                    candidates = [w for w in vocabulary[word_type] if w in self.pingze["平"]]
                    if candidates:
                        word = random.choice(candidates)
            
            line += word
        
        return line
    
    def generate_poem(self, poem_type, title=None, theme=None, hidden_head=None):
        """生成一首完整的诗,支持主题和藏头诗"""
        if poem_type == "五言":
            templates = self.wuyan_templates
            lines_per_stanza = 4
            total_lines = 8
            pingze_patterns = self.wuyan_pingze_patterns
        elif poem_type == "七言":
            templates = self.qiyan_templates
            lines_per_stanza = 4
            total_lines = 8
            pingze_patterns = self.qiyan_pingze_patterns
        else:
            print("错误:请选择'五言'或'七言'")
            return None
        
        poem = []
        
        # 随机选择韵部
        rhyme_key = random.choice(list(self.rhymes.keys()))
        rhyme_words = self.rhymes[rhyme_key]
        
        # 随机选择平仄格式(首联平起或仄起)
        pingze_pattern_idx = random.randint(0, 1)
        
        # 生成四联(首联、颔联、颈联、尾联)
        for i in range(total_lines):
            # 随机选择一个模板
            template = random.choice(templates)
            
            # 确定当前行的平仄格式
            if i < lines_per_stanza:  # 首联
                pingze_pattern = pingze_patterns[pingze_pattern_idx]
            else:  # 后续联
                # 颔联和颈联要求对仗,这里简化处理,保持平仄交替
                pingze_pattern = pingze_patterns[pingze_pattern_idx + 2 if pingze_pattern_idx < 2 else pingze_pattern_idx - 2]
            
            # 生成诗句
            line = self.generate_line(template, theme, pingze_pattern, i)
            
            # 处理藏头诗
            if hidden_head and i < len(hidden_head):
                line = hidden_head[i] + line[1:]
            
            # 偶数行(韵脚所在行)
            if i % 2 == 1:
                # 确保最后一个字押韵
                if len(line) > 0:
                    line = line[:-1] + random.choice(rhyme_words)
            
            poem.append(line)
        
        # 添加标题(如果有)
        if title:
            poem.insert(0, title)
            poem.insert(1, "——")  # 分隔符
        
        return poem
    
    def print_poem(self, poem):
        """美观地打印诗歌"""
        if not poem:
            return
        
        # 如果有标题,先打印标题
        if len(poem) > 2 and poem[1] == "——":
            print(f"\033[1;34m{poem[0]}\033[0m")  # 蓝色标题
            start_idx = 2
        else:
            start_idx = 0
        
        # 打印诗歌正文
        for i in range(start_idx, len(poem)):
            if i % 2 == 0 and i < len(poem) - 1:
                # 奇数句(上联)
                print(f"\033[1;32m{poem[i]}\033[0m")  # 绿色
            else:
                # 偶数句(下联)
                print(f"\033[1;31m{poem[i]}\033[0m")  # 红色

def main():
    print("欢迎使用古诗生成器")
    generator = PoemGenerator()
    
    while True:
        print("\n请选择诗歌类型:")
        print("1. 五言诗")
        print("2. 七言诗")
        print("3. 退出")
        
        choice = input("请输入选项 (1-3): ")
        
        if choice == "3":
            print("感谢使用!再见。")
            break
        
        poem_type = "五言" if choice == "1" else "七言" if choice == "2" else None
        
        if not poem_type:
            print("无效的选择,请重新输入。")
            continue
        
        title = input("请输入诗题(直接回车跳过): ").strip()
        if not title:
            title = f"{poem_type}诗"
        
        # 选择主题
        print("\n请选择诗歌主题:")
        themes = list(generator.themes.keys())
        for i, theme in enumerate(themes, 1):
            print(f"{i}. {theme}")
        print(f"{len(themes) + 1}. 无特定主题")
        
        theme_choice = input(f"请输入选项 (1-{len(themes) + 1}): ")
        theme = themes[int(theme_choice) - 1] if 1 <= int(theme_choice) <= len(themes) else None
        
        # 藏头诗功能
        use_hidden_head = input("是否使用藏头诗功能?(y/n): ").lower()
        hidden_head = None
        if use_hidden_head == "y":
            max_length = 8 if poem_type == "五言" else 7
            hidden_text = input(f"请输入{max_length}字以内的藏头文本: ").strip()
            if len(hidden_text) > 0:
                hidden_head = list(hidden_text)[:max_length]
        
        poem = generator.generate_poem(poem_type, title, theme, hidden_head)
        generator.print_poem(poem)

if __name__ == "__main__":
    main()    

相关文章:

  • FastAPI 支持文件下载和上传
  • 数据结构篇--优先级队列排序--实验报告
  • 城市停车场光伏-储能-充电系统耦合机制与效益分析
  • Ubuntu20.04部署KVM
  • Ubuntu22.04 系统安装Docker教程
  • 如何使用两块硬盘作为 Ubuntu24 的系统盘,实现坏掉一块不影响系统运行。
  • 域名与DNS详解
  • ROS 配置环境中的变量讲解
  • 第21天-pyttsx3语音播放功能
  • 视觉基础模型
  • 工程项目交付质量低?如何构建标准化管理体系?
  • 真实世界中的贝叶斯网络:Bootstrap、模型平均与非齐次动态的科研应用
  • Python Ray 扩展指南
  • 微信小程序AI大模型流式输出实践与总结
  • Windows在PowerShell或CMD运行 curl 命令报错 解决办法 (zx)
  • 8 种快速易用的Python Matplotlib数据可视化方法
  • 嵌入式STM32学习——串口USART 2.0(printf重定义及串口发送)
  • LM-BFF——语言模型微调新范式
  • 算法--js--电话号码的字母组合
  • 免费使用GPU的探索笔记
  • 新疆市建设局网站/信息流投放
  • 泉州网站建设网站/seo优化评论
  • 是想建个网站 用本地做服务器/百度一下百度搜索网站
  • 开发商交房需要提供哪些证书/兰州seo公司