python爬取某鱼的直播间信息
生活随笔
收集整理的這篇文章主要介紹了
python爬取某鱼的直播间信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python某魚的直播間信息
- 獲取分類信息
- 一級類目
- 二級類目
- 三級類目(標簽)
- 獲取直播間信息
- 附上某魚類目的代碼
- 附上獲取主播信息代碼
- 注:
獲取分類信息
首先找到一級類目,再根據一級類目找到二級類目,再由二級類目找三級類目(這里叫標簽)
一級類目
二級類目
三級類目(標簽)
這里以英雄聯盟為例
以上為某魚的直播分類,這里唯一需要注意的是各個類目之間的關聯關系自己做一下,這些分類都很簡單,沒有反爬,直接用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 asyncio import re import json import aiohttp import urllib3 from 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)到此某魚的全棧信息幾乎拿完。如有哪里寫的不妥的歡迎各位大佬來討論。后續會修改。
注:
此博客純手工,如有和其他博主的博客雷同,請麻煩聯系一下我。
總結
以上是生活随笔為你收集整理的python爬取某鱼的直播间信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 操作系统镜像下载
- 下一篇: PropertyUtils.copyPr