python某鱼的直播间信息 获取分类信息一级类目![在这里插入图片描述](https://img-blog.csdnimg.cn/20200507110516892.png)二级类目三级类目(标签)获取直播间信息附上某鱼类目的代码附上获取主播信息代码注:

获取分类信息

首先找到一级类目,再根据一级类目找到二级类目,再由二级类目找三级类目(这里叫标签)

一级类目在这里插入图片描述 二级类目

在这里插入图片描述

三级类目(标签)

这里以英雄联盟为例 在这里插入图片描述 以上为某鱼的直播分类,这里唯一需要注意的是各个类目之间的关联关系自己做一下,这些分类都很简单,没有反爬,直接用xpath解析网页即可。文章最后会附上完整代码。

获取直播间信息

这里随便打开一个主播的直播间,会看到直播间有很多信息,比如直播间等级,标题,开播状态,主播昵称,主播所属工会等等一系列的数据 在这里插入图片描述 通过charls抓包和chrom控制台等调试后,发现这些数据都是通过json数据的方式传过来的,而且没有反爬,只需要将对应的房间id替换即可。然后通过解析json数据即可拿到自己想要的数据。

附上某鱼类目的代码 from apps.douyu.tools import *import requestsclass getDouyuCategory(object):def __init__(self):self.headers = {'user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',}self.session = MysqlSvr.get('diandian_zl')self.first_category_id = get_first_category_id()def get_data(self):url = 'https://www.douyu.com/directory'res = requests.get(url, headers=self.headers)tree = tree_parse(res)categories = tree.xpath('//section["layout-Module"]/div[position()>=3]')for category in categories:category_first_info = {}category_first_info['category_name'] = category.xpath('./div/h4/text()')[0]_, row_first = DouYuCategoryFirstInfo.upsert(self.session,'category_name',category_first_info)category_seconds = category.xpath('./ul/li')for category_second in category_seconds:category_second_info = {}category_second_info['category_name'] = category_second.xpath('./a/strong/text()')[0]category_second_info['category_level_first_id'] = self.first_category_id[category_first_info['category_name']]_, row_second = DouYuCategorySecondInfo.upsert(self.session,'category_name',category_second_info)cid3_url = category_second.xpath('./a/@href')[0]res_3 = requests.get('https://www.douyu.com' + cid3_url, headers=self.headers)tree_3 = tree_parse(res_3)cid3_list = tree_3.xpath('//div[@class="layout-Module-filter-list"]')for cid3_info in cid3_list:cid3_url_info = cid3_info.xpath('./a[contains(@href,"directory")]/strong/span/text()')if cid3_url_info:cid3_ids = cid3_info.xpath('./a/@href')for index in range(len(cid3_url_info)):cid3_id = cid3_ids[index].split('/')[-1]cid3_text = cid3_url_info[index].split('/')[-1]cid3_info = {}cid3_info['id'] = cid3_idcid3_info['category_level_first_id'] = row_first.idcid3_info['category_level_second_id'] = row_second.idcid3_info['category_name'] = cid3_textDouYuCategoryThirdInfo.upsert(self.session,'id',cid3_info) 附上获取主播信息代码 import asyncioimport reimport jsonimport aiohttpimport urllib3from apps.app_360.conn_redis import AioRedisServiceurllib3.disable_warnings()from apps.douyu.tools import *class getRoomLiveInfo(object):def __init__(self):self.headers = {'user_agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36',}self.session = MysqlSvr.get('diandian_zl')self.second_category_id = {'英雄联盟': 1, '绝地求生': 2, '穿越火线': 3, '使命召唤:战区': 4, 'DNF': 5, 'DOTA2': 6, '炉石传说': 7, 'CS:GO': 8, 'lol云顶之弈': 9, '魔兽争霸': 10, '魔兽怀旧服': 11, '自走棋': 12, '传奇': 13, '星际争霸': 14, '格斗游戏': 15, '怀旧游戏': 16, '守望先锋': 17, 'DOTA': 18, '魔兽世界': 19, 'COD16': 20, '剑网3': 21, '我的世界': 22, '三国杀': 23, '梦幻西游': 24, '天涯明月刀': 25, '跑跑卡丁车': 26, 'NBA2KOL2': 27, 'QQ飞车端游': 28, '军事游戏': 29, '棋牌娱乐': 30, 'FIFA ONLINE4': 31, '热门网游': 32, 'APEX英雄': 33, '流放之路POE': 34, '逆水寒': 35, '风暴英雄': 36, '逆战': 37, '街头篮球': 38, '巫师之昆特牌': 39, '反恐精英Online': 40, '暗黑破坏神3': 41, '梦三国2': 42, '传奇世界': 43, '方舟:生存进化': 44, '刀塔霸业': 45, '神武4电脑版': 46, '群雄逐鹿': 47, '堡垒之夜': 48, '无限法则': 49, '问道电脑版': 50, '最终幻想14': 51, '使命召唤OL': 52, '战意': 53, '剑灵': 54, '星际战甲': 55, '龙之谷': 56, '铁甲雄兵': 57, '古剑奇谭网络版': 58, '神途': 59, '迷你世界': 60, '激战2': 61, '高达文化区': 62, '忍者村大战2': 63, 'RPG网游专区': 64, '诛仙3': 65, 'Artifact': 66, '斗鱼游戏': 67, '笑傲江湖OL': 68, '冒险岛2': 69, '万智牌': 70, '无尽战区': 71, '生死狙击': 72, '斗战神': 73, '永恒之塔': 74, '竞速游戏': 75, '九阴真经': 76, '我的起源': 77, 'FPS综合网游': 78, '劲舞团': 79, '天下3': 80, '刀锋铁骑': 81, '火箭联盟': 82, '300专区': 83, '泡泡堂': 84, '影子战场': 85, '枪林弹雨': 86, '武侠乂': 87, '音乐游戏': 88, '百变球球': 89, '游戏装机': 90, '新倩女幽魂': 91, '创世战车': 92, '天谕': 93, '征途2': 94, 'QQ炫舞': 95, '泰亚史诗': 96, '大唐无双': 97, '枪火游侠': 98, '超激斗梦境': 99, '海战世界': 100, '真·三国无双Online': 101, '兽人必须死': 102, '神枪少女': 103, '跳伞行动': 104, '怪物猎人ol': 105, '虚幻争霸': 106, 'Hytale': 107, '火源': 108, '生存竞技': 109, '乐高无限': 110, '动漫自走棋': 111, '手工星球': 112, '艾兰岛': 113, '暴雪游戏': 114, '湖北好货': 115, '主机游戏': 116, '最终幻想': 117, '最后的绿洲': 118, '骑马与砍杀': 119, '逃离塔科夫': 120, '马里奥制造': 121, '饥荒': 122, '战地风云': 123, '三国志系列': 124, '怪物猎人': 125, '拾遗记': 126, '塞尔达传说系列': 127, '主机其他游戏': 128, '恐怖游戏': 129, '命运2': 130, '荒野大镖客': 131, '暗黑地牢': 132, 'Dayz': 133, '挺进地牢': 134, '勇者斗恶龙:建造者2': 135, '只狼': 136, '僵尸世界大战': 137, '俄罗斯钓鱼': 138, '腐烂国度': 139, 'FIFA': 140, '全面战争': 141, '使命召唤': 142, '绿色地狱': 143, 'NBA2K': 144, '灵魂筹码': 145, '刺客信条': 146, '植物大战僵尸': 147, '环世界': 148, '亿万僵尸': 149, '帝国时代': 150, '人类一败涂地': 151, '宝可梦:剑/盾': 152, '星露谷物语': 153, '仁王': 154, 'raft': 155, '欧洲卡车模拟器': 156, '破坏领主': 157, '孤岛惊魂': 158, '泰拉瑞亚': 159, '军团战争': 160, '仙剑奇侠传': 161, '文明': 162, '足球经理': 163, '全境封锁': 164, '海贼无双': 165, '辐射': 166, '缺氧': 167, '逆转裁判': 168, '森林': 169, '生化危机3 重制版': 170, '龙珠斗士Z': 171, '无主之地': 172, '古墓丽影': 173, '反恐精英': 174, '火影忍者:究极忍者风暴': 175, 'SCUM': 176, '英雄连': 177, '九劫曲': 178, '神界:原罪': 179, '皇家美食': 180, '半条命': 181, '三国群英传': 182, '消逝的光芒': 183, '九霄缳神记': 184, '风暴岛': 185, '鬼泣': 186, '精灵宝可梦': 187, '深海迷航': 188, '深岩银河': 189, '了不起的修仙模拟器': 190, '杀手': 191, '马里奥赛车': 192, '超级马里奥': 193, '龙珠:超宇宙': 194, '漫漫长夜': 195, '精灵与萤火意志': 196, '石质碎片': 197, '龙珠Z': 198, '都市:天际线': 199, '火影忍者博人传': 200, '黑色幸存者': 201, '模拟农场': 202, '猎人:荒野的召唤': 203, '伤害世界': 204, '狙击精英': 205, '隐形守护者': 206, '侏罗纪世界:进化': 207, '我的朋友佩德罗': 208, '杀戮尖塔': 209, '瘟疫传说:无罪': 210, '以撒的结合': 211, '信长之野望': 212, '奇妙探险队': 213, '飙酷车神': 214, '女神异闻录': 215, '荣耀战魂': 216, '神秘海域': 217, '底特律:变人': 218, '领地人生': 219, '孤岛危机': 220, '幽灵行动:断点': 221, '任天堂明星大乱斗特别版': 222, '钓鱼星球': 223, 'GT赛车系列': 224, '血源': 225, '火炬之光': 226, '模拟人生': 227, '空洞骑士': 228, '纪元1800': 229, '英雄传说': 230, 'ATLAS': 231, '河洛群侠传': 232, '模拟城市': 233, '盗贼之海': 234, '正当防卫': 235, '命令与征服': 236, '八方旅人': 237, '群星': 238, '流放者柯南': 239, "精灵宝可梦Let's Go!": 240, '雨中冒险': 241, '光环': 242, '沉没之城': 243, '星际公民': 244, '极限竞速': 245, '血污:夜之仪式': 246, '真三国无双': 247, '我还活着': 248, '尼尔:机械纪元': 249, '碧蓝幻想': 250, '双点医院': 251, '天国:拯救': 252, '奇异人生': 253, '神力科莎': 254, '攻城英雄': 255, '火焰纹章': 256, '无人深空': 257, '工作模拟器': 258, '罗马2:全面战争': 259, 'NBA 2K 欢乐竞技场2': 260, '往日不再': 261, '港诡实录': 262, '无尽世界': 263, '进击的巨人': 264, '波西亚时光': 265, '橙光': 266, '莎木': 267, '圣歌': 268, '喷射战士': 269, '中土世界:战争之影': 270, '行尸走肉': 271, '层层恐惧': 272, '圣女战旗': 273, '哆啦A梦:牧场物语': 274, '鬼哭邦': 275, '不屈者柯南': 276, '风之旅人': 277, '太吾绘卷': 278, '战神': 279, '全面吃鸡模拟器': 280, '古剑奇谭': 281, 'JUMP大乱斗': 282, '皇牌空战': 283, '海岛大亨': 284, '碧海黑帆': 285, '最后生还者2': 286, '装机模拟器': 287, '植物大战僵尸:花园战争系列': 288, '蜘蛛侠': 289, '战争机器5': 290, '战国无双': 291, '异度之刃': 292, '遗迹:灰烬重生': 293, '羞辱系列': 294, '星之卡比': 295, '侠客风云传': 296, '旺达与巨像': 297, '吞食孔明传': 298, '突变元年:伊甸园之路': 299, '死亡搁浅': 300, '守墓人': 301, '忍者龙剑传': 302, '迷雾侦探': 303, '龙腾世纪': 304, '猎天使魔女': 305, '狂野星球之旅': 306, '救赎之路': 307, '驾驶俱乐部': 308, '极品飞车': 309, '胡闹厨房': 310, '归于沉寂': 311, '光之子': 312, '疯狂的麦克斯': 313, '地铁:离去': 314, '尘埃系列': 315, '超凡双生': 316, '孢子': 317, 'Rime': 318, 'Inside': 319, '讨鬼传': 320, '奇异小队': 321, '索尼克系列': 322, '暗黑血统': 323, '合金装备': 324, '星球大战系列': 325, '纪元:变异': 326, '镜之边缘': 327, '无双大蛇': 328, '海贼王系列': 329, '波斯王子': 330, 'Hob': 331, '祖先:人类史诗': 332, '勿忘我': 333, '寂静之人': 334, '黑道圣徒系列': 335, '鬼屋魔影:启蒙': 336, '巨神狩猎': 337, '三合会之战': 338, '女巫': 339, '大将军:罗马': 340, '人类黎明': 341, '漫展模拟器': 342, '电竞传奇': 343, '爱丽丝:庇护': 344, '深渊狂猎': 345, '掠食': 346, '重装机兵XENO': 347, '神鬼寓言': 348, '物质世界': 349, '质量效应': 350, '刀剑神域': 351, '博德之门': 352, '通灵塔': 353, '噬血代码': 354, '上古卷轴': 355, '战场女武神': 356, '无畏': 357, '命运之手': 358, '神舞幻想': 359, '消失的星球': 360, '赛博朋克2077': 361, '中国式家长': 362, '勇者斗恶龙': 363, '幻想三国志': 364, '堕落之王': 365, '生化变种': 366, '魔界战记': 367, '最后的守护者': 368, '伊苏': 369, '迸发': 370, '审判之眼:死神的遗言': 371, '地牢围攻': 372, '幻': 373, '克苏鲁的呼唤': 374, '黑暗影集:棉兰幽灵': 375, '蔚蓝': 376, '对马之魂': 377, '少数幸运儿': 378, '与狼同行': 379, '乐高世界': 380, '超能队长': 381, '内心朋友': 382, 'Deracine': 383, '风来之国': 384, 'EVOTINCTION': 385, '看火人': 386, 'F1系列': 387, '超级房车赛系列': 388, '赛车计划 系列': 389, '极速骑行': 390, '超级机器人大战': 391, '幽浮系列': 392, '这是我的战争': 393, '太空战舰:战术行动': 394, '冰汽时代': 395, '十字军之王': 396, '精英:危险': 397, '战锤40K:星际战士': 398, '马克思佩恩': 399, '量子破碎': 400, '死亡空间': 401, '光明记忆': 402, '海贼王:寻秘世界': 403, '非常英雄': 404, '旁观者': 405, '凯瑟琳Full Body': 406, '噬神者': 407, '鬼武者重制版': 408, '叛乱:沙漠风暴': 409, '王国之心': 410, '除暴战警': 411, '幽林怪谈': 412, '雷霆一击': 413, '狂怒': 414, '德军总部': 415, 'Control': 416, '骷髅骑士': 417, '疯狂之月': 418, '三位一体': 419, 'ToolsUp!': 420, '新樱花大战': 421, '赏金奇兵': 422, '华沙': 423, '宅男的人间冒险': 424, '黑暗献祭': 425, '战锤:混沌祸根': 426, '失落余烬': 427, '斩服少女:异布': 428, '2020东京奥运': 429, '世界汽车拉力锦标赛': 430, '十三机兵防卫圈': 431, '沙雕鹿模拟器': 432, '奇异世界:灵魂风暴': 433, '墲人之境': 434, 'MUGEN': 435, '作业疯了': 436, '战争附言': 437, '疑案追声': 438, '一起玩农场': 439, '舞力全开': 440, '武装突袭': 441, '王国与城堡': 442, '天空之山': 443, '逃脱者': 444, '石油大亨': 445, '生化奇兵': 446, '全面战争模拟器': 447, '末日方舟': 448, '美国逃亡者': 449, '恐惧狼群': 450, '极限巅峰': 451, '激战花园': 452, '皇帝成长计划': 453, '福尔摩斯': 454, '浮岛物语': 455, '地球陨落': 456, '餐瘾地城': 457, '60秒': 458, 'WWE 2K': 459, '纸人': 460, '黑暗逃生': 461, '失落城堡': 462, '恐怖黎明': 463, '传送门骑士': 464, '死亡细胞': 465, '茶杯头': 466, '地痞街区': 467, '漫威终极联盟': 468, '看门狗': 469, '耀西的毛线世界': 470, '节奏地牢': 471, '围攻': 472, '百战天虫': 473, '心灵杀手': 474, '战斗砖块剧场': 475, '未转变者': 476, '异星工厂': 477, '求生意志OL': 478, 'UFC': 479, '传送门': 480, '恶魔城': 481, '方根书简': 482, '废品机械师': 483, '归家异途': 484, '过山车之星': 485, '毁灭战士': 486, '几何冲刺': 487, '监狱建筑师': 488, '军团要塞': 489, '坎巴拉太空计划': 490, '恋爱模拟器': 491, '料理模拟器': 492, '流浪汉模拟器': 493, '模拟山羊': 494, '魔能': 495, '欧陆风云': 496, '乞丐模拟器': 497, '小偷模拟器': 498, '桌游模拟器': 499, '俄罗斯方块99': 500, '史莱姆牧场': 501, '请出示证件': 502, '超越光速': 503, '传说之下': 504, '赛博朋克酒保行动': 505, '城堡毁灭者': 506, '武装原型': 507, '游戏开发者': 508, '去月球': 509, '蝙蝠侠': 510, 'Refunct': 511, '未上锁的房间': 512, '失忆症': 513, '艾迪芬奇的记忆': 514, '勇敢的心': 515, '影子战术:将军之刃': 516, '逃出生天': 517, '异界锁链': 518, '动物园之星': 519, '天外世界': 520, 'VRChat': 521, '大富翁': 522, '路易鬼屋': 523, '马里奥和索尼克在东京奥运会': 524, '牧场物语:重返矿石镇': 525, '斩妖Raksasi': 526, '军团': 527, '扣押': 528, '破坏协议:在线城市RPG': 529, '黑客网络': 530, '太阳帝国的原罪:反叛': 531, '星界边境': 532, '红色至日': 533, '杀戮空间': 534, '又一个僵尸塔防': 535, '点击英雄': 536, '王国:经典': 537, '表层指挥': 538, '进化': 539, '黑手党': 540, '节奏光剑': 541, '死亡岛': 542, '暴战机甲兵': 543, '魔方世界': 544, '勇气默示录': 545, '永劫无间': 546, '龙与地下城:黑暗联盟': 547, '破败王者': 548, '9-5': 549, '速度与激情': 550, '新世界': 551, '人类': 552, '怪异西部': 553, '解忧咖啡店': 554, '牢狱公主': 555, '幻影异闻录': 556, '初音未来:歌姬计划': 557, '嗜血边缘': 558, '圣剑传说': 559, '漫威复仇者联盟': 560, '废土3': 561, '部落与弯刀': 562, '一拳超人:无名英雄': 563, 'Raji:远古传奇': 564, '我的英雄学院:唯我正义': 565, '铁血战士:狩猎场': 566, '幽灵行者': 567, '地心深处': 568, '洛克人': 569, '侍道': 570, 'kenshi': 571, '哈迪斯': 572, '极乐迪斯科': 573, '一字不落': 574, 'GTFO': 575, '非常普通的鹿': 576, '缉私警察': 577, '只只大冒险': 578, '音灵': 579, '寄居隅怪奇事件簿': 580, '一起开火车!': 581, '霓虹深渊': 582, '莫塔守山人': 583, '夜勤人': 584, '传说法师': 585, '矿坑之下': 586, '龙崖': 587, '铁锤守卫英雄传': 588, '城市帝国': 589, '微软飞行模拟': 590, '卡片猎人': 591, '要塞:十字军东征': 592, '不义联盟': 593, '天命奇御': 594, '地狱之刃': 595, '红色派系': 596, '战场兄弟': 597, 'SUPERHOT': 598, '铁路帝国': 599, '杰克盒子的派对游戏包': 600, '真人快打': 601, '战锤40k:永恒远征': 602, '海军行动': 603, 'BeamNG赛车': 604, '墓园': 605, '火柴人战斗': 606, '地铁:归来': 607, '撕裂': 608, '星球基地': 609, '尤卡莱莉大冒险': 610, '二战装甲战车': 611, '钢铁苍穹': 612, '洪潮之焰': 613, '细胞分裂': 614, '乐高漫威超级英雄': 615, '岛': 616, '北境之地': 617, '油管主播的生活': 618, '进击!要塞!': 619, '地狱潜者': 620, '行会': 621, '乐高侏罗纪世界': 622, '厕所穿越记': 623, '创造世界': 624, '地下城': 625, '地狱已满': 626, '房产达人': 627, '废土2': 628, '狂热火车': 629, '罗马之子': 630, '爬行世界': 631, '叛变:沙漠风暴': 632, '人间地狱': 633, '贪婪地牢': 634, '王国:两位君主': 635, '王牌英雄': 636, '无冬之夜': 637, '吸血鬼:避世血族': 638, '远星物语': 639, '战术小队': 640, '战争行为': 641, '这是警察': 642, '终极定制夜': 643, '万智对决': 644, '月影之塔': 645, '机甲战魔': 646, 'temtem': 647, 'ECO': 648, '班迪与油印机': 649, '薄暮传说': 650, '堡垒:火焰之炼': 651, '宝箱点击': 652, '弹丸论破': 653, '渎神': 654, '翻滚石块': 655, '疯狂运输': 656, '荒岛求生': 657, '基佬大乱斗': 658, '家园': 659, '僵尸毁灭工程': 660, '晶体管': 661, '雷神之锤': 662, '零时代': 663, '螺旋骑士团': 664, '美国陆军': 665, '迷雾生存': 666, '魔岩山传说': 667, '骑士与商人': 668, '桥梁建造者': 669, '深海': 670, '神话时代': 671, '神探杰克': 672, '泰坦之旅': 673, '逃离扎特沃': 674, '陷阵之志': 675, '悬崖帝国': 676, '野兽传奇': 677, '遗忘国度之闲置冠军': 678, '音乐战机': 679, '英雄萨姆': 680, '越野巨轮': 681, '赃物与巫术': 682, '脏弹': 683, '职业自行车队经理': 684, '撞车嘉年华': 685, '实况足球2020': 686, '碧蓝航线': 687, '传颂之物': 688, '绝体绝命都市': 689, '食人鲨': 690, '腐化2029': 691, '僵尸部队': 692, '吉拉夫与安妮卡': 693, '赛马大亨': 694, '广播': 695, '钢铁危机': 696, '地狱时刻': 697, '胡闹搬家': 698, '方根胶片': 699, '小镇英雄': 700, '公主计划': 701, '妖精的尾巴': 702, '玛拉的夏天': 703, '重生边缘': 704, '少林九武猴': 705, 'Skul英雄杀手': 706, '坦克维修模拟': 707, '绝望监牢': 708, '无尽宇宙': 709, '恐怖的世界': 710, '瑞秋福斯特自杀之谜': 711, '装甲军团': 712, '太空海盗和僵尸': 713, '女巫来了': 714, '超级兔子人': 715, '夜间城邦': 716, '手部模拟器': 717, '超级鸡马': 718, '健身环大冒险': 719, '汽车调试项目': 720, '不予播出': 721, '炼金工房系列': 722, '灾厄逆刃': 723, '人行道': 724, '星空精灵': 725, '宝石:霜之怒': 726, '战锤地下世界': 727, '骰子地下城': 728, '铁锤守卫:英雄传': 729, '魔域地牢': 730, '漫漫长路': 731, '卡片地下城': 732, '超时空方舟': 733, '在森林深处': 734, '超载地牢': 735, '爱丽丝与巨人': 736, '符文工房': 737, '妙连千军': 738, '全面战争:竞技场': 739, '猎人竞技场:传奇': 740, '高能小队': 741, '丸霸无双': 742, '超可靠快递': 743, 'SKYHILL: 黑雾': 744, '逃出地牢': 745, '骇游侠探': 746, '彼岸晴空': 747, '彼岸花': 748, '咬紧牙关': 749, '单谷混乱': 750, '冲破束缚': 751, '迷走深空:碎舰师': 752, '生死大乱斗': 753, '黑色空岛': 754, '钻头派对': 755, '埃尔登:遗忘之旅': 756, '疯狂世界': 757, '守夜人:长夜': 758, '组装车间': 759, '毁灭全人类': 760, '海绵宝宝:争霸比基尼海滩': 761, '云城朋克': 762, '炽热的帆:海盗之战': 763, '明天会有救援': 764, '游击队1941': 765, '逆行竞技场': 766, '崩解': 767, '北方之魂': 768, '腐败': 769, '岛屿生存者': 770, '残存之人': 771, '再编译': 772, '梦幻模拟战 I & II': 773, '无间冥寺': 774, '先驱者': 775, '遵命,陛下': 776, '量子联盟': 777, '永生之境:吸血鬼战争': 778, '咒语破碎': 779, 'V4跨界战': 780, '王者荣耀': 781, '和平精英': 782, '火影忍者': 783, '欢乐麻将': 784, '王者模拟战': 785, '中国象棋': 786, '新游中心': 787, '热门手游': 788, '梦幻手游': 789, 'QQ飞车': 790, '欢乐斗地主': 791, '阴阳师': 792, '狼人杀': 793, 'JJ斗地主': 794, '一人之下': 795, '多多自走棋': 796, '崩坏3': 797, '风云岛行动': 798, '原神': 799, '跑跑手游': 800, '率土之滨': 801, '灌篮高手': 802, '皇室战争': 803, '王牌战士': 804, 'CF手游': 805, '忍者必须死3': 806, '神武4手游': 807, '梦幻模拟战': 808, '实况足球': 809, '剑与远征': 810, '航海王:燃烧意志': 811, '百闻牌': 812, '球球大作战': 813, '英雄杀': 814, '魔域口袋版': 815, '梦幻三维版': 816, '口袋妖怪复刻': 817, '剑网3:指尖江湖': 818, '部落冲突': 819, '新笑傲江湖': 820, '猫和老鼠': 821, '猎人手游': 822, '明日之后': 823, '影之诗': 824, '战争艺术:无限进化': 825, '决战平安京': 826, '决斗之城': 827, '魂斗罗归来': 828, '圣斗士星矢': 829, '问道手游': 830, '魔力宝贝': 831, '最强NBA': 832, '热血街篮': 833, '手游推广': 834, '魔灵召唤': 835, '香肠派对': 836, '街头篮球手游': 837, '战双帕弥什': 838, '大话西游2口袋版': 839, 'FIFA足球世界': 840, '街篮': 841, '一起来捉妖': 842, '明日方舟': 843, '自由幻想手游': 844, '火影忍者OL': 845, '一梦江湖': 846, '王牌战争:文明重启': 847, '完美世界手游': 848, '拳皇98OL': 849, '重装上阵': 850, '梦塔防手游': 851, '赛尔号': 852, '敢达争锋对决': 853, '猎魂觉醒': 854, '仙境传说': 855, '荒野乱斗': 856, '流星群侠传': 857, '特色手游': 858, '逃跑吧少年': 859, '弹弹堂': 860, '石器时代': 861, '狂野飙车9:竞速传奇': 862, 'RPG手游': 863, '天天酷跑': 864, '拉结尔': 865, '战歌竞技场': 866, '倩女幽魂手游': 867, '决斗之城2': 868, '战争与文明': 869, '街球艺术': 870, '传奇手游': 871, '欢乐升级': 872, '雀魂': 873, '二次元手游': 874, '天龙八部online': 875, '征途2手游': 876, '万王之王3D': 877, '武林外传': 878, '我叫MT4': 879, '时空召唤': 880, '方舟手游': 881, '我的勇者': 882, '手机帝国': 883, '复古传奇': 884, '4399游戏': 885, '侍魂': 886, '潮人篮球': 887, '元气骑士': 888, '红警OL手游': 889, '狐妖小红娘手游': 890, '植物大战僵尸手游': 891, '战就战': 892, '俄罗斯方块环游记': 893, '二战风云2': 894, '剧本杀': 895, '食物语': 896, '龙之谷手游': 897, '塞尔之光': 898, '龙珠最强之战': 899, '斗破苍穹:斗帝之路': 900, '虚荣': 901, '创造与魔法': 902, '境界-死神激斗': 903, '奇迹觉醒': 904, 'sky光遇': 905, '精灵宝可梦手游': 906, '游戏王:决斗链接': 907, '巅峰战舰': 908, 'fatego系列': 909, '失落城堡手游': 910, '逆剑青衣': 911, '雷霆游戏': 912, '寻仙': 913, '吾爱斗地主': 914, '天天象棋': 915, '地球末日生存': 916, '王国纪元': 917, '非人学园': 918, '梦幻诛仙': 919, '召唤与合成': 920, '不思议迷宫': 921, '家庭教师': 922, '雪鹰领主': 923, '贪婪洞窟2': 924, '龙族幻想': 925, '火纹意志2': 926, '奇葩战斗家': 927, '英魂口袋版': 928, '妖精的尾巴:魔导少年': 929, '指尖自走棋': 930, '逆转回合': 931, '剑侠情缘2:剑歌行': 932, '异化之地': 933, '拳皇命运': 934, '三国杀移动版': 935, '第二银河': 936, '火纹意志': 937, '足球手游': 938, '月圆之夜': 939, '蜀门': 940, '王牌战争': 941, '代号:生机': 942, '使命召唤手游': 943, 'QQ炫舞手游': 944, '野蛮人大作战': 945, '全民枪战2': 946, '腾讯秦时明月手游': 947, '量子特攻': 948, '坦克大决战': 949, '暗影之怒:种族争霸': 950, '花与剑': 951, '独立手游': 952, '一起优诺': 953, '迷雾侦探社': 954, '神都夜行录': 955, '飞机大战2': 956, '皇家骑士:300自走棋': 957, '阿瑞斯病毒': 958, '蛇蛇争霸': 959, '钓鱼冒险岛': 960, '麻将来了': 961, '风之大陆': 962, '金属对决': 963, '轩辕剑龙舞云山': 964, '微乐棋牌': 965, '辐射:避难所Online': 966, '遇见逆水寒': 967, '战塔英雄': 968, '戏精大侦探': 969, '赛尔号星球大战': 970, '极光计划': 971, '风色幻想:命运传说': 972, '不良人3': 973, '镇魔曲手游': 974, '绿茵之巅': 975, '音舞手游': 976, '激斗火柴人': 977, '传奇世界手游': 978, '魂武者': 979, '疯狂动物城:赛车嘉年华': 980, '猎手之王': 981, '全军出击': 982, '武侠乂手游': 983, '英雄爱三国': 984, '永恒纪元': 985, '#COMPASS': 986, '犬夜叉:奈落之战': 987, '孤岛先锋': 988, '传送门骑士手游': 989, '趣推理': 990, '乱世王者': 991, '数码宝贝:相遇': 992, '仙剑4': 993, '光荣使命': 994, '隆中对': 995, '手游酒馆': 996, '长安幻世绘': 997, '篮球手游': 998, '元素地牢': 999, '帕斯卡契约': 1000, '怪物猎人Riders': 1001, '我是谜': 1002, '闹闹天宫': 1003, '蛮荒之境': 1004, '原始守卫战': 1005, '废土行动': 1006, '鬼泣-巅峰之战': 1007, '射击类手游': 1008, '百万骑士团:明境计划': 1009, '权力与纷争': 1010, '轮回诀': 1011, '海岛纪元': 1012, '热血足球': 1013, '命运歌姬': 1014, '绿色征途': 1015, '云梦四时歌': 1016, '救赎之地': 1017, '口袋对决': 1018, '王牌御史': 1019, '城堡抢翻天': 1020, '银翼计划': 1021, '光明大陆': 1022, '项羽传': 1023, '哈利波特:魔法觉醒': 1024, '鹿鼎记手游': 1025, '妖神记': 1026, '伊洛纳': 1027, '天谕手游': 1028, '银汉游戏': 1029, '新神魔大陆': 1030, '一起看': 1031, '音乐、颜值(横屏)': 1032, '户外': 1033, '乡野': 1034, '美食': 1035, '原创IP': 1036, '互动交友': 1037, '舞蹈': 1038, '颜值': 1039, '文化': 1040, '达人': 1041, '数码科技': 1042, '直播中国': 1043, '汽车': 1044, '科普': 1045, '纪录片': 1046, '鱼铺': 1047, '教育': 1048, '交友': 1049, '电台': 1050, '陪玩': 1051, '正能量': 1052, '京斗云': 1053, '虚拟恋人': 1054, '二次元': 1055}async def get_data(self, info):room_info = {}own_id = info['uid']cate_id = info['cid1']cate2_id = info['cid2']honour_url = 'https://www.douyu.com/lapi/interact/roomTag/getTagInfo?room_id=%s&owner_id=%s&cate_id=%s&cate2_id=%s' % (info['rid'], own_id, cate_id, cate2_id)async with aiohttp.ClientSession(headers=self.headers) as session:async with session.get(honour_url, verify_ssl=False) as honour_res:honour_info = json.loads(await honour_res.text())if honour_info['data']:room_info['honour_name'] = honour_info['data']['tag_name']room_info['honour_rank'] = honour_info['data']['idx']else:room_info['honour_name'] = ""room_info['honour_rank'] = ""trade_url = 'https://www.douyu.com/ztCache/club/getanchorclubstatus?roomid=%s' % info['rid']async with aiohttp.ClientSession(headers=self.headers) as session:async with session.get(trade_url, verify_ssl=False) as trade_res:trade_info = json.loads(await trade_res.text())if trade_info['data']:room_info['trade_name'] = trade_info['data']['org_sname']room_info['trade_tag'] = trade_info['data']['room_label']else:room_info['trade_name'] = ""room_info['trade_tag'] = ""hour_rank = 'https://rank.douyucdn.cn/cs/rank/roll?rid=%s' % info['rid']async with aiohttp.ClientSession(headers=self.headers) as session:async with session.get(hour_rank, verify_ssl=False) as hour_rank_res:hour_rank_info = json.loads(await hour_rank_res.text())room_info['hour_rank'] = hour_rank_info['data']['idx']room_info['hour_rank_name'] = hour_rank_info['data']['rname']fxtz = 'https://www.douyu.com/lapi/interact/fxtz/roomData?room_id=%s' % info['rid']async with aiohttp.ClientSession(headers=self.headers) as session:async with session.get(fxtz, verify_ssl=False) as fxtz_res:fxtz_info = json.loads(await fxtz_res.text())room_info['star'] = fxtz_info['data']['star']room_info['room_id'] = info['rid']room_info['room_name'] = info['rn']room_info['nick_name'] = info['nn']room_info['online'] = info['ol']room_info['offical_cer'] = info['od']room_info['cid_3'] = info['cid3']DouYuLiveRoomInfo.upsert(self.session,'room_id',room_info)print(room_info)async def get_data_info(self):self.r = await AioRedisService.get()url = "https://www.douyu.com/directory/all"res = requests.get(url, headers=self.headers, verify=False)pages = re.findall(r'"pageCount":(.*?),', res.text)[0]for page in range(int(pages)):api_url = 'https://www.douyu.com/gapi/rkc/directory/mixList/0_0/%s' % (page)res = requests.get(api_url, headers=self.headers, verify=False)room_data = json.loads(res.text)data_info = room_data['data']['rl']task = []for info in data_info:task.append(asyncio.ensure_future(self.get_data(info)))if len(task) == 30:await asyncio.wait(task)task = []else:continueself.session.close()async def run(self):while True:await self.get_data_info()await asyncio.sleep(300)

到此某鱼的全栈信息几乎拿完。如有哪里写的不妥的欢迎各位大佬来讨论。后续会修改。

注:

此博客纯手工,如有和其他博主的博客雷同,请麻烦联系一下我。

(苏州铁艺楼梯)