当前位置:首页>免费下载>Python案例:分享一段能够下载免费歌曲的代码

Python案例:分享一段能够下载免费歌曲的代码

  • 2026-02-06 17:41:50
Python案例:分享一段能够下载免费歌曲的代码
import requestsimport osimport timeimport refrom difflib import SequenceMatcher################################  !! 用户配置区 - 只需修改这里 !!###############################CONFIG = {    # 1. 想下载的歌曲信息    'SONG_NAME''千年等一回',      # 修改为你想下载的歌曲名    'ARTIST_NAME''鞠婧祎',    # 修改为希望的原唱歌手    # 2. 平台搜索优先级 (越靠前越先尝试)    'PLATFORM_PRIORITY': ['netease''qqmusic''soda'], # 可选: netease, qqmusic, soda    # 3. 歌曲名匹配严格度 (0-1, 越高越严格)    'SONG_MATCH_THRESHOLD'0.6,  # 0.6表示至少60%相似度    # 4. 文件保存设置    'SAVE_DIR''./下载的音乐',    # 5. 是否启用调试信息    'DEBUG'True}################################ 配置区结束################################ ==================== 通用工具函数 ====================def create_save_dir(path):    """创建保存目录"""    if not os.path.exists(path):        os.makedirs(path)        if CONFIG['DEBUG']:            print(f"[系统] 创建目录: {path}")def sanitize_filename(filename):    """清理文件名中的非法字符"""    illegal_chars = r'\/:*?"<>|'    for char in illegal_chars:        filename = filename.replace(char, '_')    filename = filename.replace('\n''_').replace('\r''_')    if len(filename) > 100:        name, ext = os.path.splitext(filename)        filename = name[:80] + "..." + ext    return filenamedef clean_song_name(song_name):    """清理歌曲名,移除括号内容、空格等,用于匹配"""    # 移除括号及括号内的内容    song_name = re.sub(r'[\((].*?[\))]''', song_name)    # 移除特殊字符和空格    song_name = re.sub(r'[-\s\.\,]''', song_name)    # 转换为小写(可选)    song_name = song_name.lower()    return song_namedef calculate_similarity(str1, str2):    """计算两个字符串的相似度 (0-1)"""    # 先清理两个字符串    str1_clean = clean_song_name(str1)    str2_clean = clean_song_name(str2)    # 如果清理后完全一致,相似度为1.0    if str1_clean == str2_clean:        return 1.0    # 使用difflib计算相似度    return SequenceMatcher(None, str1_clean, str2_clean).ratio()def download_audio(url, filepath, headers):    """通用音频下载函数"""    try:        response = requests.get(url, headers=headers, stream=True, timeout=30)        response.raise_for_status()        content_type = response.headers.get('Content-Type''')        if not content_type.startswith('audio/'and 'video/' not in content_type:            if CONFIG['DEBUG']:                print(f"[下载] 警告: 返回内容类型异常: {content_type}")            return False        with open(filepath, 'wb'as f:            for chunk in response.iter_content(chunk_size=8192):                if chunk:                    f.write(chunk)        return True    except Exception as e:        if CONFIG['DEBUG']:            print(f"[下载] 下载失败: {e}")        return False# ==================== 平台搜索模块 ====================class NeteaseMusicSearcher:    """网易云音乐搜索器"""    @staticmethod    def search_song(song_name, artist_name):        """在网易云搜索歌曲,返回整理后的结果列表"""        print(f"[网易云] 正在搜索: {song_name} - {artist_name}")        headers = {            'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',            'Referer''https://music.163.com/'        }        try:            # 构造搜索URL            encoded_keyword = requests.utils.quote(f"{song_name}{artist_name}")            url = f"https://music.163.com/api/search/get/web?csrf_token=&s={encoded_keyword}&type=1&offset=0&limit=20"            response = requests.get(url, headers=headers, timeout=10)            data = response.json()            if data['code'] != 200 or not data.get('result', {}).get('songs'):                print("[网易云] 搜索无结果")                return []            songs = data['result']['songs']            processed_results = []            target_song_clean = clean_song_name(song_name)            for song in songs:                song_id = song['id']                song_title = song['name']                primary_artist = song['artists'][0]['name'if song['artists'else '未知'                # 计算歌曲名相似度                song_similarity = calculate_similarity(song_title, song_name)                # 判断是否为原唱                is_original = (artist_name in primary_artist) or (primary_artist in artist_name)                # 构造播放链接                play_url = f"https://music.163.com/song/media/outer/url?id={song_id}.mp3"                # 计算综合匹配度分数                match_score = 0                # 歌曲名相似度权重: 60%                match_score += song_similarity * 60                # 原唱权重: 30%                match_score += 30 if is_original else 0                # 歌手名匹配权重: 10%                match_score += 10 if (artist_name in primary_artist) else 0                processed_results.append({                    'platform''netease',                    'id': song_id,                    'title': song_title,                    'artist': primary_artist,                    'is_original': is_original,                    'song_similarity': song_similarity,                    'match_score': match_score,  # 综合匹配分数                    'url': play_url,                    'source''网易云音乐'                })            # 按匹配度排序            processed_results.sort(key=lambda x: x['match_score'], reverse=True)            print(f"[网易云] 找到 {len(processed_results)} 个结果")            # 显示前3个最佳匹配            for i, result in enumerate(processed_results[:3]):                print(f"  {i+1}{result['title']} - {result['artist']} "                      f"(相似度: {result['song_similarity']:.2f}, 原唱: {result['is_original']})")            return processed_results        except Exception as e:            print(f"[网易云] 搜索出错: {e}")            return []class QQMusicSearcher:    """QQ音乐搜索器 (示例框架)"""    @staticmethod    def search_song(song_name, artist_name):        """QQ音乐搜索接口示例"""        print(f"[QQ音乐] 正在搜索: {song_name} - {artist_name}")        time.sleep(0.5)        # 示例数据 - 模拟不同匹配度的结果        example_results = [            {                'platform''qqmusic',                'id''001',                'title'f'{song_name}',                'artist': artist_name,                'is_original'True,                'song_similarity'0.95,                'match_score'95,                'url'f'https://api.qq.com/song/001.mp3',                'source''QQ音乐'            },            {                'platform''qqmusic',                'id''002',                'title'f'{song_name} (Live版)',                'artist': artist_name,                'is_original'True,                'song_similarity'0.85,                'match_score'85,                'url'f'https://api.qq.com/song/002.mp3',                'source''QQ音乐'            },            {                'platform''qqmusic',                'id''003',                'title'f'其他歌曲',                'artist': artist_name,                'is_original'True,                'song_similarity'0.2,                'match_score'20,                'url'f'https://api.qq.com/song/003.mp3',                'source''QQ音乐'            }        ]        print(f"[QQ音乐] 找到 {len(example_results)} 个结果 (示例)")        for i, result in enumerate(example_results[:3]):            print(f"  {i+1}{result['title']} - {result['artist']} "                  f"(相似度: {result['song_similarity']:.2f}, 原唱: {result['is_original']})")        return example_resultsclass SodaMusicSearcher:    """汽水音乐搜索器 (示例框架)"""    @staticmethod    def search_song(song_name, artist_name):        """汽水音乐搜索接口示例"""        print(f"[汽水音乐] 正在搜索: {song_name} - {artist_name}")        time.sleep(0.5)        example_results = [            {                'platform''soda',                'id''soda_001',                'title'f'{song_name}',                'artist''翻唱歌手',                'is_original'False,                'song_similarity'0.90,                'match_score'70,  # 不是原唱,分数较低                'url'f'https://soda.com/track/soda_001.mp3',                'source''汽水音乐'            }        ]        print(f"[汽水音乐] 找到 {len(example_results)} 个结果 (示例)")        return example_results# ==================== 主逻辑函数 ====================def filter_and_sort_results(results, target_song, target_artist, threshold=0.6):    """    过滤和排序搜索结果    返回: (qualified_results, unqualified_results)    """    qualified = []    unqualified = []    for result in results:        similarity = result.get('song_similarity'0)        # 如果歌曲名相似度低于阈值,放入不合格列表        if similarity < threshold:            unqualified.append(result)        else:            qualified.append(result)    # 对合格的结果按匹配度分数排序    qualified.sort(key=lambda x: x.get('match_score'0), reverse=True)    return qualified, unqualifieddef smart_music_downloader():    """智能多平台音乐下载主函数"""    song_name = CONFIG['SONG_NAME']    artist_name = CONFIG['ARTIST_NAME']    platforms = CONFIG['PLATFORM_PRIORITY']    save_dir = CONFIG['SAVE_DIR']    threshold = CONFIG['SONG_MATCH_THRESHOLD']    print("=" * 60)    print(f"🎵 智能音乐下载器启动")    print(f"📀 目标歌曲: {song_name}")    print(f"🎤 目标歌手: {artist_name}")    print(f"🎯 歌曲匹配阈值: {threshold}")    print(f"🔄 搜索平台: {', '.join(platforms)}")    print("=" * 60)    create_save_dir(save_dir)    searchers = {        'netease': NeteaseMusicSearcher.search_song,        'qqmusic': QQMusicSearcher.search_song,        'soda': SodaMusicSearcher.search_song    }    # 第一阶段:在所有平台搜索,优先下载高匹配度的原唱版本    print("\n✅ 第一阶段: 搜索并下载最佳匹配版本...")    for platform in platforms:        if platform not in searchers:            print(f"[系统] 跳过未知平台: {platform}")            continue        print(f"\n{'='*40}")        print(f"尝试平台: {platform.upper()}")        print(f"{'='*40}")        search_func = searchers[platform]        results = search_func(song_name, artist_name)        if not results:            print(f"[{platform}] 无搜索结果,尝试下一平台")            continue        # 过滤和排序结果        qualified_results, unqualified_results = filter_and_sort_results(            results, song_name, artist_name, threshold        )        print(f"[{platform}] 合格结果: {len(qualified_results)} 个 | "              f"不合格结果: {len(unqualified_results)} 个")        if not qualified_results:            print(f"[{platform}] 无合格结果(相似度<{threshold}),尝试下一平台")            continue        # 尝试下载合格结果(已按匹配度排序)        for i, song_info in enumerate(qualified_results[:5]):  # 最多尝试前5个合格结果            print(f"\n[{platform}] 尝试 #{i+1}{song_info['title']} - {song_info['artist']}")            print(f"    匹配度: {song_info['match_score']}/100 | "                  f"相似度: {song_info.get('song_similarity'0):.2f} | "                  f"原唱: {song_info['is_original']}")            # 生成文件名(包含匹配度信息)            match_type = "原唱" if song_info['is_original'else "翻唱"            filename = f"{song_info['title']} - {song_info['artist']} ({match_type}_{song_info['source']}_{song_info['match_score']}).mp3"            filename = sanitize_filename(filename)            filepath = os.path.join(save_dir, filename)            # 如果文件已存在,跳过            if os.path.exists(filepath):                print(f"    文件已存在,跳过下载")                continue            headers = {'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}            success = download_audio(song_info['url'], filepath, headers)            if success:                print(f"🎉 下载成功! | 平台: {song_info['source']}")                print(f"💾 保存路径: {filepath}")                print("=" * 60)                return True            else:                print(f"[{platform}] 下载失败,尝试下一版本")    # 第二阶段:如果高匹配度版本都失败,尝试放宽条件    print("\n⚠️ 高匹配度版本全部失败,启动备选方案...")    print("✅ 第二阶段: 尝试所有可用版本(包括低匹配度)...")    for platform in platforms:        if platform not in searchers:            continue        print(f"\n--- 尝试平台: {platform.upper()} (放宽条件) ---")        search_func = searchers[platform]        results = search_func(song_name, artist_name)        if not results:            continue        # 只按匹配度排序,不进行过滤        results.sort(key=lambda x: x.get('match_score'0), reverse=True)        for i, song_info in enumerate(results[:3]):  # 尝试前3个            similarity = song_info.get('song_similarity'0)            print(f"[{platform}] 尝试 #{i+1}{song_info['title']} - {song_info['artist']} "                  f"(相似度: {similarity:.2f}, 原唱: {song_info['is_original']})")            match_type = "原唱" if song_info['is_original'else "翻唱"            filename = f"{song_info['title']} - {song_info['artist']} ({match_type}_{song_info['source']}_备选).mp3"            filename = sanitize_filename(filename)            filepath = os.path.join(save_dir, filename)            if os.path.exists(filepath):                print(f"    文件已存在,跳过下载")                continue            headers = {'User-Agent''Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'}            success = download_audio(song_info['url'], filepath, headers)            if success:                print(f"🎉 备选版本下载成功! | 平台: {song_info['source']}")                print(f"💾 保存路径: {filepath}")                print("=" * 60)                return True    # 所有尝试都失败    print("\n❌ 所有平台和版本尝试均失败")    print("\n💡 建议调整策略:")    print(f"  1. 降低匹配阈值 (当前: {threshold})")    print(f"  2. 检查歌曲名是否正确: '{song_name}'")    print(f"  3. 尝试其他平台")    print("=" * 60)    return False# ==================== 程序入口 ====================if __name__ == "__main__":    success = smart_music_downloader()    if success:        print("✨ 任务完成!")    else:        print("😔 下载失败")    # 等待用户查看结果    if os.name == 'nt':        os.system("pause")

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-06 22:01:37 HTTP/2.0 GET : https://yeyulingfeng.com/a/464180.html
  2. 运行时间 : 0.118977s [ 吞吐率:8.40req/s ] 内存消耗:4,327.50kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=03bddd18c3685f327d2a63158848cb68
  1. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/database.php ( 2.50 KB )
  34. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/runtime/temp/8ef20ebb20ac8b82ec5232b0bcb62051.php ( 11.99 KB )
  140. /yingpanguazai/ssd/ssd1/www/yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001033s ] mysql:host=127.0.0.1;port=3306;dbname=no_yeyulingfeng;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001980s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000817s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000658s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001622s ]
  6. SELECT * FROM `set` [ RunTime:0.000590s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001716s ]
  8. SELECT * FROM `article` WHERE `id` = 464180 LIMIT 1 [ RunTime:0.001238s ]
  9. UPDATE `article` SET `lasttime` = 1770386497 WHERE `id` = 464180 [ RunTime:0.029625s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000368s ]
  11. SELECT * FROM `article` WHERE `id` < 464180 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000647s ]
  12. SELECT * FROM `article` WHERE `id` > 464180 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006114s ]
  13. SELECT * FROM `article` WHERE `id` < 464180 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000900s ]
  14. SELECT * FROM `article` WHERE `id` < 464180 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002777s ]
  15. SELECT * FROM `article` WHERE `id` < 464180 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000818s ]
0.120546s