python爬取某鱼的直播间信息
python某魚的直播間信息
- 獲取分類信息
- 一級(jí)類目
- 二級(jí)類目
- 三級(jí)類目(標(biāo)簽)
- 獲取直播間信息
- 附上某魚類目的代碼
- 附上獲取主播信息代碼
- 注:
獲取分類信息
首先找到一級(jí)類目,再根據(jù)一級(jí)類目找到二級(jí)類目,再由二級(jí)類目找三級(jí)類目(這里叫標(biāo)簽)
一級(jí)類目
二級(jí)類目
三級(jí)類目(標(biāo)簽)
這里以英雄聯(lián)盟為例
以上為某魚的直播分類,這里唯一需要注意的是各個(gè)類目之間的關(guān)聯(lián)關(guān)系自己做一下,這些分類都很簡(jiǎn)單,沒有反爬,直接用xpath解析網(wǎng)頁(yè)即可。文章最后會(huì)附上完整代碼。
獲取直播間信息
這里隨便打開一個(gè)主播的直播間,會(huì)看到直播間有很多信息,比如直播間等級(jí),標(biāo)題,開播狀態(tài),主播昵稱,主播所屬工會(huì)等等一系列的數(shù)據(jù)
通過(guò)charls抓包和chrom控制臺(tái)等調(diào)試后,發(fā)現(xiàn)這些數(shù)據(jù)都是通過(guò)json數(shù)據(jù)的方式傳過(guò)來(lái)的,而且沒有反爬,只需要將對(duì)應(yīng)的房間id替換即可。然后通過(guò)解析json數(shù)據(jù)即可拿到自己想要的數(shù)據(jù)。
附上某魚類目的代碼
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 = {'英雄聯(lián)盟': 1, '絕地求生': 2, '穿越火線': 3, '使命召喚:戰(zhàn)區(qū)': 4, 'DNF': 5, 'DOTA2': 6, '爐石傳說(shuō)': 7,'CS:GO': 8, 'lol云頂之弈': 9, '魔獸爭(zhēng)霸': 10, '魔獸懷舊服': 11, '自走棋': 12, '傳奇': 13, '星際爭(zhēng)霸': 14,'格斗游戲': 15, '懷舊游戲': 16, '守望先鋒': 17, 'DOTA': 18, '魔獸世界': 19, 'COD16': 20, '劍網(wǎng)3': 21,'我的世界': 22, '三國(guó)殺': 23, '夢(mèng)幻西游': 24, '天涯明月刀': 25, '跑跑卡丁車': 26, 'NBA2KOL2': 27,'QQ飛車端游': 28, '軍事游戲': 29, '棋牌娛樂': 30, 'FIFA ONLINE4': 31, '熱門網(wǎng)游': 32, 'APEX英雄': 33,'流放之路POE': 34, '逆水寒': 35, '風(fēng)暴英雄': 36, '逆戰(zhàn)': 37, '街頭籃球': 38, '巫師之昆特牌': 39,'反恐精英Online': 40, '暗黑破壞神3': 41, '夢(mèng)三國(guó)2': 42, '傳奇世界': 43, '方舟:生存進(jìn)化': 44, '刀塔霸業(yè)': 45,'神武4電腦版': 46, '群雄逐鹿': 47, '堡壘之夜': 48, '無(wú)限法則': 49, '問道電腦版': 50, '最終幻想14': 51,'使命召喚OL': 52, '戰(zhàn)意': 53, '劍靈': 54, '星際戰(zhàn)甲': 55, '龍之谷': 56, '鐵甲雄兵': 57, '古劍奇譚網(wǎng)絡(luò)版': 58,'神途': 59, '迷你世界': 60, '激戰(zhàn)2': 61, '高達(dá)文化區(qū)': 62, '忍者村大戰(zhàn)2': 63, 'RPG網(wǎng)游專區(qū)': 64, '誅仙3': 65,'Artifact': 66, '斗魚游戲': 67, '笑傲江湖OL': 68, '冒險(xiǎn)島2': 69, '萬(wàn)智牌': 70, '無(wú)盡戰(zhàn)區(qū)': 71,'生死狙擊': 72, '斗戰(zhàn)神': 73, '永恒之塔': 74, '競(jìng)速游戲': 75, '九陰真經(jīng)': 76, '我的起源': 77, 'FPS綜合網(wǎng)游': 78,'勁舞團(tuán)': 79, '天下3': 80, '刀鋒鐵騎': 81, '火箭聯(lián)盟': 82, '300專區(qū)': 83, '泡泡堂': 84, '影子戰(zhàn)場(chǎng)': 85,'槍林彈雨': 86, '武俠乂': 87, '音樂游戲': 88, '百變球球': 89, '游戲裝機(jī)': 90, '新倩女幽魂': 91, '創(chuàng)世戰(zhàn)車': 92,'天諭': 93, '征途2': 94, 'QQ炫舞': 95, '泰亞史詩(shī)': 96, '大唐無(wú)雙': 97, '槍火游俠': 98, '超激斗夢(mèng)境': 99,'海戰(zhàn)世界': 100, '真·三國(guó)無(wú)雙Online': 101, '獸人必須死': 102, '神槍少女': 103, '跳傘行動(dòng)': 104,'怪物獵人ol': 105, '虛幻爭(zhēng)霸': 106, 'Hytale': 107, '火源': 108, '生存競(jìng)技': 109, '樂高無(wú)限': 110,'動(dòng)漫自走棋': 111, '手工星球': 112, '艾蘭島': 113, '暴雪游戲': 114, '湖北好貨': 115, '主機(jī)游戲': 116,'最終幻想': 117, '最后的綠洲': 118, '騎馬與砍殺': 119, '逃離塔科夫': 120, '馬里奧制造': 121, '饑荒': 122,'戰(zhàn)地風(fēng)云': 123, '三國(guó)志系列': 124, '怪物獵人': 125, '拾遺記': 126, '塞爾達(dá)傳說(shuō)系列': 127, '主機(jī)其他游戲': 128,'恐怖游戲': 129, '命運(yùn)2': 130, '荒野大鏢客': 131, '暗黑地牢': 132, 'Dayz': 133, '挺進(jìn)地牢': 134,'勇者斗惡龍:建造者2': 135, '只狼': 136, '僵尸世界大戰(zhàn)': 137, '俄羅斯釣魚': 138, '腐爛國(guó)度': 139, 'FIFA': 140,'全面戰(zhàn)爭(zhēng)': 141, '使命召喚': 142, '綠色地獄': 143, 'NBA2K': 144, '靈魂籌碼': 145, '刺客信條': 146,'植物大戰(zhàn)僵尸': 147, '環(huán)世界': 148, '億萬(wàn)僵尸': 149, '帝國(guó)時(shí)代': 150, '人類一敗涂地': 151, '寶可夢(mèng):劍/盾': 152,'星露谷物語(yǔ)': 153, '仁王': 154, 'raft': 155, '歐洲卡車模擬器': 156, '破壞領(lǐng)主': 157, '孤島驚魂': 158,'泰拉瑞亞': 159, '軍團(tuán)戰(zhàn)爭(zhēng)': 160, '仙劍奇?zhèn)b傳': 161, '文明': 162, '足球經(jīng)理': 163, '全境封鎖': 164,'海賊無(wú)雙': 165, '輻射': 166, '缺氧': 167, '逆轉(zhuǎn)裁判': 168, '森林': 169, '生化危機(jī)3 重制版': 170,'龍珠斗士Z': 171, '無(wú)主之地': 172, '古墓麗影': 173, '反恐精英': 174, '火影忍者:究極忍者風(fēng)暴': 175, 'SCUM': 176,'英雄連': 177, '九劫曲': 178, '神界:原罪': 179, '皇家美食': 180, '半條命': 181, '三國(guó)群英傳': 182,'消逝的光芒': 183, '九霄繯神記': 184, '風(fēng)暴島': 185, '鬼泣': 186, '精靈寶可夢(mèng)': 187, '深海迷航': 188,'深巖銀河': 189, '了不起的修仙模擬器': 190, '殺手': 191, '馬里奧賽車': 192, '超級(jí)馬里奧': 193, '龍珠:超宇宙': 194,'漫漫長(zhǎng)夜': 195, '精靈與螢火意志': 196, '石質(zhì)碎片': 197, '龍珠Z': 198, '都市:天際線': 199, '火影忍者博人傳': 200,'黑色幸存者': 201, '模擬農(nóng)場(chǎng)': 202, '獵人:荒野的召喚': 203, '傷害世界': 204, '狙擊精英': 205, '隱形守護(hù)者': 206,'侏羅紀(jì)世界:進(jìn)化': 207, '我的朋友佩德羅': 208, '殺戮尖塔': 209, '瘟疫傳說(shuō):無(wú)罪': 210, '以撒的結(jié)合': 211,'信長(zhǎng)之野望': 212, '奇妙探險(xiǎn)隊(duì)': 213, '飆酷車神': 214, '女神異聞錄': 215, '榮耀戰(zhàn)魂': 216, '神秘海域': 217,'底特律:變?nèi)?#39;: 218, '領(lǐng)地人生': 219, '孤島危機(jī)': 220, '幽靈行動(dòng):斷點(diǎn)': 221, '任天堂明星大亂斗特別版': 222,'釣魚星球': 223, 'GT賽車系列': 224, '血源': 225, '火炬之光': 226, '模擬人生': 227, '空洞騎士': 228,'紀(jì)元1800': 229, '英雄傳說(shuō)': 230, 'ATLAS': 231, '河洛群俠傳': 232, '模擬城市': 233, '盜賊之海': 234,'正當(dāng)防衛(wèi)': 235, '命令與征服': 236, '八方旅人': 237, '群星': 238, '流放者柯南': 239,"精靈寶可夢(mèng)Let's Go!": 240, '雨中冒險(xiǎn)': 241, '光環(huán)': 242, '沉沒之城': 243, '星際公民': 244, '極限競(jìng)速': 245,'血污:夜之儀式': 246, '真三國(guó)無(wú)雙': 247, '我還活著': 248, '尼爾:機(jī)械紀(jì)元': 249, '碧藍(lán)幻想': 250, '雙點(diǎn)醫(yī)院': 251,'天國(guó):拯救': 252, '奇異人生': 253, '神力科莎': 254, '攻城英雄': 255, '火焰紋章': 256, '無(wú)人深空': 257,'工作模擬器': 258, '羅馬2:全面戰(zhàn)爭(zhēng)': 259, 'NBA 2K 歡樂競(jìng)技場(chǎng)2': 260, '往日不再': 261, '港詭實(shí)錄': 262,'無(wú)盡世界': 263, '進(jìn)擊的巨人': 264, '波西亞時(shí)光': 265, '橙光': 266, '莎木': 267, '圣歌': 268,'噴射戰(zhàn)士': 269, '中土世界:戰(zhàn)爭(zhēng)之影': 270, '行尸走肉': 271, '層層恐懼': 272, '圣女戰(zhàn)旗': 273,'哆啦A夢(mèng):牧場(chǎng)物語(yǔ)': 274, '鬼哭邦': 275, '不屈者柯南': 276, '風(fēng)之旅人': 277, '太吾繪卷': 278, '戰(zhàn)神': 279,'全面吃雞模擬器': 280, '古劍奇譚': 281, 'JUMP大亂斗': 282, '皇牌空戰(zhàn)': 283, '海島大亨': 284, '碧海黑帆': 285,'最后生還者2': 286, '裝機(jī)模擬器': 287, '植物大戰(zhàn)僵尸:花園戰(zhàn)爭(zhēng)系列': 288, '蜘蛛俠': 289, '戰(zhàn)爭(zhēng)機(jī)器5': 290,'戰(zhàn)國(guó)無(wú)雙': 291, '異度之刃': 292, '遺跡:灰燼重生': 293, '羞辱系列': 294, '星之卡比': 295, '俠客風(fēng)云傳': 296,'旺達(dá)與巨像': 297, '吞食孔明傳': 298, '突變?cè)?#xff1a;伊甸園之路': 299, '死亡擱淺': 300, '守墓人': 301, '忍者龍劍傳': 302,'迷霧偵探': 303, '龍騰世紀(jì)': 304, '獵天使魔女': 305, '狂野星球之旅': 306, '救贖之路': 307, '駕駛俱樂部': 308,'極品飛車': 309, '胡鬧廚房': 310, '歸于沉寂': 311, '光之子': 312, '瘋狂的麥克斯': 313, '地鐵:離去': 314,'塵埃系列': 315, '超凡雙生': 316, '孢子': 317, 'Rime': 318, 'Inside': 319, '討鬼傳': 320,'奇異小隊(duì)': 321, '索尼克系列': 322, '暗黑血統(tǒng)': 323, '合金裝備': 324, '星球大戰(zhàn)系列': 325, '紀(jì)元:變異': 326,'鏡之邊緣': 327, '無(wú)雙大蛇': 328, '海賊王系列': 329, '波斯王子': 330, 'Hob': 331, '祖先:人類史詩(shī)': 332,'勿忘我': 333, '寂靜之人': 334, '黑道圣徒系列': 335, '鬼屋魔影:啟蒙': 336, '巨神狩獵': 337, '三合會(huì)之戰(zhàn)': 338,'女巫': 339, '大將軍:羅馬': 340, '人類黎明': 341, '漫展模擬器': 342, '電競(jìng)傳奇': 343, '愛麗絲:庇護(hù)': 344,'深淵狂獵': 345, '掠食': 346, '重裝機(jī)兵XENO': 347, '神鬼寓言': 348, '物質(zhì)世界': 349, '質(zhì)量效應(yīng)': 350,'刀劍神域': 351, '博德之門': 352, '通靈塔': 353, '噬血代碼': 354, '上古卷軸': 355, '戰(zhàn)場(chǎng)女武神': 356,'無(wú)畏': 357, '命運(yùn)之手': 358, '神舞幻想': 359, '消失的星球': 360, '賽博朋克2077': 361, '中國(guó)式家長(zhǎng)': 362,'勇者斗惡龍': 363, '幻想三國(guó)志': 364, '墮落之王': 365, '生化變種': 366, '魔界戰(zhàn)記': 367, '最后的守護(hù)者': 368,'伊蘇': 369, '迸發(fā)': 370, '審判之眼:死神的遺言': 371, '地牢圍攻': 372, '幻': 373, '克蘇魯?shù)暮魡?#39;: 374,'黑暗影集:棉蘭幽靈': 375, '蔚藍(lán)': 376, '對(duì)馬之魂': 377, '少數(shù)幸運(yùn)兒': 378, '與狼同行': 379, '樂高世界': 380,'超能隊(duì)長(zhǎng)': 381, '內(nèi)心朋友': 382, 'Deracine': 383, '風(fēng)來(lái)之國(guó)': 384, 'EVOTINCTION': 385,'看火人': 386, 'F1系列': 387, '超級(jí)房車賽系列': 388, '賽車計(jì)劃 系列': 389, '極速騎行': 390, '超級(jí)機(jī)器人大戰(zhàn)': 391,'幽浮系列': 392, '這是我的戰(zhàn)爭(zhēng)': 393, '太空戰(zhàn)艦:戰(zhàn)術(shù)行動(dòng)': 394, '冰汽時(shí)代': 395, '十字軍之王': 396,'精英:危險(xiǎn)': 397, '戰(zhàn)錘40K:星際戰(zhàn)士': 398, '馬克思佩恩': 399, '量子破碎': 400, '死亡空間': 401, '光明記憶': 402,'海賊王:尋秘世界': 403, '非常英雄': 404, '旁觀者': 405, '凱瑟琳Full Body': 406, '噬神者': 407,'鬼武者重制版': 408, '叛亂:沙漠風(fēng)暴': 409, '王國(guó)之心': 410, '除暴戰(zhàn)警': 411, '幽林怪談': 412, '雷霆一擊': 413,'狂怒': 414, '德軍總部': 415, 'Control': 416, '骷髏騎士': 417, '瘋狂之月': 418, '三位一體': 419,'ToolsUp!': 420, '新櫻花大戰(zhàn)': 421, '賞金奇兵': 422, '華沙': 423, '宅男的人間冒險(xiǎn)': 424, '黑暗獻(xiàn)祭': 425,'戰(zhàn)錘:混沌禍根': 426, '失落余燼': 427, '斬服少女:異布': 428, '2020東京奧運(yùn)': 429, '世界汽車?yán)﹀\標(biāo)賽': 430,'十三機(jī)兵防衛(wèi)圈': 431, '沙雕鹿模擬器': 432, '奇異世界:靈魂風(fēng)暴': 433, '墲人之境': 434, 'MUGEN': 435,'作業(yè)瘋了': 436, '戰(zhàn)爭(zhēng)附言': 437, '疑案追聲': 438, '一起玩農(nóng)場(chǎng)': 439, '舞力全開': 440, '武裝突襲': 441,'王國(guó)與城堡': 442, '天空之山': 443, '逃脫者': 444, '石油大亨': 445, '生化奇兵': 446, '全面戰(zhàn)爭(zhēng)模擬器': 447,'末日方舟': 448, '美國(guó)逃亡者': 449, '恐懼狼群': 450, '極限巔峰': 451, '激戰(zhàn)花園': 452, '皇帝成長(zhǎng)計(jì)劃': 453,'福爾摩斯': 454, '浮島物語(yǔ)': 455, '地球隕落': 456, '餐癮地城': 457, '60秒': 458, 'WWE 2K': 459,'紙人': 460, '黑暗逃生': 461, '失落城堡': 462, '恐怖黎明': 463, '傳送門騎士': 464, '死亡細(xì)胞': 465,'茶杯頭': 466, '地痞街區(qū)': 467, '漫威終極聯(lián)盟': 468, '看門狗': 469, '耀西的毛線世界': 470, '節(jié)奏地牢': 471,'圍攻': 472, '百戰(zhàn)天蟲': 473, '心靈殺手': 474, '戰(zhàn)斗磚塊劇場(chǎng)': 475, '未轉(zhuǎn)變者': 476, '異星工廠': 477,'求生意志OL': 478, 'UFC': 479, '傳送門': 480, '惡魔城': 481, '方根書簡(jiǎn)': 482, '廢品機(jī)械師': 483,'歸家異途': 484, '過(guò)山車之星': 485, '毀滅戰(zhàn)士': 486, '幾何沖刺': 487, '監(jiān)獄建筑師': 488, '軍團(tuán)要塞': 489,'坎巴拉太空計(jì)劃': 490, '戀愛模擬器': 491, '料理模擬器': 492, '流浪漢模擬器': 493, '模擬山羊': 494, '魔能': 495,'歐陸風(fēng)云': 496, '乞丐模擬器': 497, '小偷模擬器': 498, '桌游模擬器': 499, '俄羅斯方塊99': 500, '史萊姆牧場(chǎng)': 501,'請(qǐng)出示證件': 502, '超越光速': 503, '傳說(shuō)之下': 504, '賽博朋克酒保行動(dòng)': 505, '城堡毀滅者': 506, '武裝原型': 507,'游戲開發(fā)者': 508, '去月球': 509, '蝙蝠俠': 510, 'Refunct': 511, '未上鎖的房間': 512, '失憶癥': 513,'艾迪芬奇的記憶': 514, '勇敢的心': 515, '影子戰(zhàn)術(shù):將軍之刃': 516, '逃出生天': 517, '異界鎖鏈': 518,'動(dòng)物園之星': 519, '天外世界': 520, 'VRChat': 521, '大富翁': 522, '路易鬼屋': 523,'馬里奧和索尼克在東京奧運(yùn)會(huì)': 524, '牧場(chǎng)物語(yǔ):重返礦石鎮(zhèn)': 525, '斬妖Raksasi': 526, '軍團(tuán)': 527, '扣押': 528,'破壞協(xié)議:在線城市RPG': 529, '黑客網(wǎng)絡(luò)': 530, '太陽(yáng)帝國(guó)的原罪:反叛': 531, '星界邊境': 532, '紅色至日': 533,'殺戮空間': 534, '又一個(gè)僵尸塔防': 535, '點(diǎn)擊英雄': 536, '王國(guó):經(jīng)典': 537, '表層指揮': 538, '進(jìn)化': 539,'黑手黨': 540, '節(jié)奏光劍': 541, '死亡島': 542, '暴戰(zhàn)機(jī)甲兵': 543, '魔方世界': 544, '勇氣默示錄': 545,'永劫無(wú)間': 546, '龍與地下城:黑暗聯(lián)盟': 547, '破敗王者': 548, '9-5': 549, '速度與激情': 550, '新世界': 551,'人類': 552, '怪異西部': 553, '解憂咖啡店': 554, '牢獄公主': 555, '幻影異聞錄': 556, '初音未來(lái):歌姬計(jì)劃': 557,'嗜血邊緣': 558, '圣劍傳說(shuō)': 559, '漫威復(fù)仇者聯(lián)盟': 560, '廢土3': 561, '部落與彎刀': 562, '一拳超人:無(wú)名英雄': 563,'Raji:遠(yuǎn)古傳奇': 564, '我的英雄學(xué)院:唯我正義': 565, '鐵血戰(zhàn)士:狩獵場(chǎng)': 566, '幽靈行者': 567, '地心深處': 568,'洛克人': 569, '侍道': 570, 'kenshi': 571, '哈迪斯': 572, '極樂迪斯科': 573, '一字不落': 574,'GTFO': 575, '非常普通的鹿': 576, '緝私警察': 577, '只只大冒險(xiǎn)': 578, '音靈': 579, '寄居隅怪奇事件簿': 580,'一起開火車!': 581, '霓虹深淵': 582, '莫塔守山人': 583, '夜勤人': 584, '傳說(shuō)法師': 585, '礦坑之下': 586,'龍崖': 587, '鐵錘守衛(wèi)英雄傳': 588, '城市帝國(guó)': 589, '微軟飛行模擬': 590, '卡片獵人': 591, '要塞:十字軍東征': 592,'不義聯(lián)盟': 593, '天命奇御': 594, '地獄之刃': 595, '紅色派系': 596, '戰(zhàn)場(chǎng)兄弟': 597, 'SUPERHOT': 598,'鐵路帝國(guó)': 599, '杰克盒子的派對(duì)游戲包': 600, '真人快打': 601, '戰(zhàn)錘40k:永恒遠(yuǎn)征': 602, '海軍行動(dòng)': 603,'BeamNG賽車': 604, '墓園': 605, '火柴人戰(zhàn)斗': 606, '地鐵:歸來(lái)': 607, '撕裂': 608, '星球基地': 609,'尤卡萊莉大冒險(xiǎn)': 610, '二戰(zhàn)裝甲戰(zhàn)車': 611, '鋼鐵蒼穹': 612, '洪潮之焰': 613, '細(xì)胞分裂': 614,'樂高漫威超級(jí)英雄': 615, '島': 616, '北境之地': 617, '油管主播的生活': 618, '進(jìn)擊!要塞!': 619, '地獄潛者': 620,'行會(huì)': 621, '樂高侏羅紀(jì)世界': 622, '廁所穿越記': 623, '創(chuàng)造世界': 624, '地下城': 625, '地獄已滿': 626,'房產(chǎn)達(dá)人': 627, '廢土2': 628, '狂熱火車': 629, '羅馬之子': 630, '爬行世界': 631, '叛變:沙漠風(fēng)暴': 632,'人間地獄': 633, '貪婪地牢': 634, '王國(guó):兩位君主': 635, '王牌英雄': 636, '無(wú)冬之夜': 637, '吸血鬼:避世血族': 638,'遠(yuǎn)星物語(yǔ)': 639, '戰(zhàn)術(shù)小隊(duì)': 640, '戰(zhàn)爭(zhēng)行為': 641, '這是警察': 642, '終極定制夜': 643, '萬(wàn)智對(duì)決': 644,'月影之塔': 645, '機(jī)甲戰(zhàn)魔': 646, 'temtem': 647, 'ECO': 648, '班迪與油印機(jī)': 649, '薄暮傳說(shuō)': 650,'堡壘:火焰之煉': 651, '寶箱點(diǎn)擊': 652, '彈丸論破': 653, '瀆神': 654, '翻滾石塊': 655, '瘋狂運(yùn)輸': 656,'荒島求生': 657, '基佬大亂斗': 658, '家園': 659, '僵尸毀滅工程': 660, '晶體管': 661, '雷神之錘': 662,'零時(shí)代': 663, '螺旋騎士團(tuán)': 664, '美國(guó)陸軍': 665, '迷霧生存': 666, '魔巖山傳說(shuō)': 667, '騎士與商人': 668,'橋梁建造者': 669, '深海': 670, '神話時(shí)代': 671, '神探杰克': 672, '泰坦之旅': 673, '逃離扎特沃': 674,'陷陣之志': 675, '懸崖帝國(guó)': 676, '野獸傳奇': 677, '遺忘國(guó)度之閑置冠軍': 678, '音樂戰(zhàn)機(jī)': 679, '英雄薩姆': 680,'越野巨輪': 681, '贓物與巫術(shù)': 682, '臟彈': 683, '職業(yè)自行車隊(duì)經(jīng)理': 684, '撞車嘉年華': 685, '實(shí)況足球2020': 686,'碧藍(lán)航線': 687, '傳頌之物': 688, '絕體絕命都市': 689, '食人鯊': 690, '腐化2029': 691, '僵尸部隊(duì)': 692,'吉拉夫與安妮卡': 693, '賽馬大亨': 694, '廣播': 695, '鋼鐵危機(jī)': 696, '地獄時(shí)刻': 697, '胡鬧搬家': 698,'方根膠片': 699, '小鎮(zhèn)英雄': 700, '公主計(jì)劃': 701, '妖精的尾巴': 702, '瑪拉的夏天': 703, '重生邊緣': 704,'少林九武猴': 705, 'Skul英雄殺手': 706, '坦克維修模擬': 707, '絕望監(jiān)牢': 708, '無(wú)盡宇宙': 709, '恐怖的世界': 710,'瑞秋福斯特自殺之謎': 711, '裝甲軍團(tuán)': 712, '太空海盜和僵尸': 713, '女巫來(lái)了': 714, '超級(jí)兔子人': 715,'夜間城邦': 716, '手部模擬器': 717, '超級(jí)雞馬': 718, '健身環(huán)大冒險(xiǎn)': 719, '汽車調(diào)試項(xiàng)目': 720, '不予播出': 721,'煉金工房系列': 722, '災(zāi)厄逆刃': 723, '人行道': 724, '星空精靈': 725, '寶石:霜之怒': 726, '戰(zhàn)錘地下世界': 727,'骰子地下城': 728, '鐵錘守衛(wèi):英雄傳': 729, '魔域地牢': 730, '漫漫長(zhǎng)路': 731, '卡片地下城': 732, '超時(shí)空方舟': 733,'在森林深處': 734, '超載地牢': 735, '愛麗絲與巨人': 736, '符文工房': 737, '妙連千軍': 738, '全面戰(zhàn)爭(zhēng):競(jìng)技場(chǎng)': 739,'獵人競(jìng)技場(chǎng):傳奇': 740, '高能小隊(duì)': 741, '丸霸無(wú)雙': 742, '超可靠快遞': 743, 'SKYHILL: 黑霧': 744,'逃出地牢': 745, '駭游俠探': 746, '彼岸晴空': 747, '彼岸花': 748, '咬緊牙關(guān)': 749, '單谷混亂': 750,'沖破束縛': 751, '迷走深空:碎艦師': 752, '生死大亂斗': 753, '黑色空島': 754, '鉆頭派對(duì)': 755,'埃爾登:遺忘之旅': 756, '瘋狂世界': 757, '守夜人:長(zhǎng)夜': 758, '組裝車間': 759, '毀滅全人類': 760,'海綿寶寶:爭(zhēng)霸比基尼海灘': 761, '云城朋克': 762, '熾熱的帆:海盜之戰(zhàn)': 763, '明天會(huì)有救援': 764, '游擊隊(duì)1941': 765,'逆行競(jìng)技場(chǎng)': 766, '崩解': 767, '北方之魂': 768, '腐敗': 769, '島嶼生存者': 770, '殘存之人': 771,'再編譯': 772, '夢(mèng)幻模擬戰(zhàn) I & II': 773, '無(wú)間冥寺': 774, '先驅(qū)者': 775, '遵命,陛下': 776, '量子聯(lián)盟': 777,'永生之境:吸血鬼戰(zhàn)爭(zhēng)': 778, '咒語(yǔ)破碎': 779, 'V4跨界戰(zhàn)': 780, '王者榮耀': 781, '和平精英': 782, '火影忍者': 783,'歡樂麻將': 784, '王者模擬戰(zhàn)': 785, '中國(guó)象棋': 786, '新游中心': 787, '熱門手游': 788, '夢(mèng)幻手游': 789,'QQ飛車': 790, '歡樂斗地主': 791, '陰陽(yáng)師': 792, '狼人殺': 793, 'JJ斗地主': 794, '一人之下': 795,'多多自走棋': 796, '崩壞3': 797, '風(fēng)云島行動(dòng)': 798, '原神': 799, '跑跑手游': 800, '率土之濱': 801,'灌籃高手': 802, '皇室戰(zhàn)爭(zhēng)': 803, '王牌戰(zhàn)士': 804, 'CF手游': 805, '忍者必須死3': 806, '神武4手游': 807,'夢(mèng)幻模擬戰(zhàn)': 808, '實(shí)況足球': 809, '劍與遠(yuǎn)征': 810, '航海王:燃燒意志': 811, '百聞牌': 812, '球球大作戰(zhàn)': 813,'英雄殺': 814, '魔域口袋版': 815, '夢(mèng)幻三維版': 816, '口袋妖怪復(fù)刻': 817, '劍網(wǎng)3:指尖江湖': 818, '部落沖突': 819,'新笑傲江湖': 820, '貓和老鼠': 821, '獵人手游': 822, '明日之后': 823, '影之詩(shī)': 824, '戰(zhàn)爭(zhēng)藝術(shù):無(wú)限進(jìn)化': 825,'決戰(zhàn)平安京': 826, '決斗之城': 827, '魂斗羅歸來(lái)': 828, '圣斗士星矢': 829, '問道手游': 830, '魔力寶貝': 831,'最強(qiáng)NBA': 832, '熱血街籃': 833, '手游推廣': 834, '魔靈召喚': 835, '香腸派對(duì)': 836, '街頭籃球手游': 837,'戰(zhàn)雙帕彌什': 838, '大話西游2口袋版': 839, 'FIFA足球世界': 840, '街籃': 841, '一起來(lái)捉妖': 842, '明日方舟': 843,'自由幻想手游': 844, '火影忍者OL': 845, '一夢(mèng)江湖': 846, '王牌戰(zhàn)爭(zhēng):文明重啟': 847, '完美世界手游': 848,'拳皇98OL': 849, '重裝上陣': 850, '夢(mèng)塔防手游': 851, '賽爾號(hào)': 852, '敢達(dá)爭(zhēng)鋒對(duì)決': 853, '獵魂覺醒': 854,'仙境傳說(shuō)': 855, '荒野亂斗': 856, '流星群俠傳': 857, '特色手游': 858, '逃跑吧少年': 859, '彈彈堂': 860,'石器時(shí)代': 861, '狂野飆車9:競(jìng)速傳奇': 862, 'RPG手游': 863, '天天酷跑': 864, '拉結(jié)爾': 865, '戰(zhàn)歌競(jìng)技場(chǎng)': 866,'倩女幽魂手游': 867, '決斗之城2': 868, '戰(zhàn)爭(zhēng)與文明': 869, '街球藝術(shù)': 870, '傳奇手游': 871, '歡樂升級(jí)': 872,'雀魂': 873, '二次元手游': 874, '天龍八部online': 875, '征途2手游': 876, '萬(wàn)王之王3D': 877, '武林外傳': 878,'我叫MT4': 879, '時(shí)空召喚': 880, '方舟手游': 881, '我的勇者': 882, '手機(jī)帝國(guó)': 883, '復(fù)古傳奇': 884,'4399游戲': 885, '侍魂': 886, '潮人籃球': 887, '元?dú)怛T士': 888, '紅警OL手游': 889, '狐妖小紅娘手游': 890,'植物大戰(zhàn)僵尸手游': 891, '戰(zhàn)就戰(zhàn)': 892, '俄羅斯方塊環(huán)游記': 893, '二戰(zhàn)風(fēng)云2': 894, '劇本殺': 895, '食物語(yǔ)': 896,'龍之谷手游': 897, '塞爾之光': 898, '龍珠最強(qiáng)之戰(zhàn)': 899, '斗破蒼穹:斗帝之路': 900, '虛榮': 901, '創(chuàng)造與魔法': 902,'境界-死神激斗': 903, '奇跡覺醒': 904, 'sky光遇': 905, '精靈寶可夢(mèng)手游': 906, '游戲王:決斗鏈接': 907,'巔峰戰(zhàn)艦': 908, 'fatego系列': 909, '失落城堡手游': 910, '逆劍青衣': 911, '雷霆游戲': 912, '尋仙': 913,'吾愛斗地主': 914, '天天象棋': 915, '地球末日生存': 916, '王國(guó)紀(jì)元': 917, '非人學(xué)園': 918, '夢(mèng)幻誅仙': 919,'召喚與合成': 920, '不思議迷宮': 921, '家庭教師': 922, '雪鷹領(lǐng)主': 923, '貪婪洞窟2': 924, '龍族幻想': 925,'火紋意志2': 926, '奇葩戰(zhàn)斗家': 927, '英魂口袋版': 928, '妖精的尾巴:魔導(dǎo)少年': 929, '指尖自走棋': 930,'逆轉(zhuǎn)回合': 931, '劍俠情緣2:劍歌行': 932, '異化之地': 933, '拳皇命運(yùn)': 934, '三國(guó)殺移動(dòng)版': 935, '第二銀河': 936,'火紋意志': 937, '足球手游': 938, '月圓之夜': 939, '蜀門': 940, '王牌戰(zhàn)爭(zhēng)': 941, '代號(hào):生機(jī)': 942,'使命召喚手游': 943, 'QQ炫舞手游': 944, '野蠻人大作戰(zhàn)': 945, '全民槍戰(zhàn)2': 946, '騰訊秦時(shí)明月手游': 947,'量子特攻': 948, '坦克大決戰(zhàn)': 949, '暗影之怒:種族爭(zhēng)霸': 950, '花與劍': 951, '獨(dú)立手游': 952, '一起優(yōu)諾': 953,'迷霧偵探社': 954, '神都夜行錄': 955, '飛機(jī)大戰(zhàn)2': 956, '皇家騎士:300自走棋': 957, '阿瑞斯病毒': 958,'蛇蛇爭(zhēng)霸': 959, '釣魚冒險(xiǎn)島': 960, '麻將來(lái)了': 961, '風(fēng)之大陸': 962, '金屬對(duì)決': 963, '軒轅劍龍舞云山': 964,'微樂棋牌': 965, '輻射:避難所Online': 966, '遇見逆水寒': 967, '戰(zhàn)塔英雄': 968, '戲精大偵探': 969,'賽爾號(hào)星球大戰(zhàn)': 970, '極光計(jì)劃': 971, '風(fēng)色幻想:命運(yùn)傳說(shuō)': 972, '不良人3': 973, '鎮(zhèn)魔曲手游': 974,'綠茵之巔': 975, '音舞手游': 976, '激斗火柴人': 977, '傳奇世界手游': 978, '魂武者': 979,'瘋狂動(dòng)物城:賽車嘉年華': 980, '獵手之王': 981, '全軍出擊': 982, '武俠乂手游': 983, '英雄愛三國(guó)': 984,'永恒紀(jì)元': 985, '#COMPASS': 986, '犬夜叉:奈落之戰(zhàn)': 987, '孤島先鋒': 988, '傳送門騎士手游': 989,'趣推理': 990, '亂世王者': 991, '數(shù)碼寶貝:相遇': 992, '仙劍4': 993, '光榮使命': 994, '隆中對(duì)': 995,'手游酒館': 996, '長(zhǎng)安幻世繪': 997, '籃球手游': 998, '元素地牢': 999, '帕斯卡契約': 1000,'怪物獵人Riders': 1001, '我是謎': 1002, '鬧鬧天宮': 1003, '蠻荒之境': 1004, '原始守衛(wèi)戰(zhàn)': 1005,'廢土行動(dòng)': 1006, '鬼泣-巔峰之戰(zhàn)': 1007, '射擊類手游': 1008, '百萬(wàn)騎士團(tuán):明境計(jì)劃': 1009, '權(quán)力與紛爭(zhēng)': 1010,'輪回訣': 1011, '海島紀(jì)元': 1012, '熱血足球': 1013, '命運(yùn)歌姬': 1014, '綠色征途': 1015, '云夢(mèng)四時(shí)歌': 1016,'救贖之地': 1017, '口袋對(duì)決': 1018, '王牌御史': 1019, '城堡搶翻天': 1020, '銀翼計(jì)劃': 1021, '光明大陸': 1022,'項(xiàng)羽傳': 1023, '哈利波特:魔法覺醒': 1024, '鹿鼎記手游': 1025, '妖神記': 1026, '伊洛納': 1027,'天諭手游': 1028, '銀漢游戲': 1029, '新神魔大陸': 1030, '一起看': 1031, '音樂、顏值(橫屏)': 1032,'戶外': 1033, '鄉(xiāng)野': 1034, '美食': 1035, '原創(chuàng)IP': 1036, '互動(dòng)交友': 1037, '舞蹈': 1038,'顏值': 1039, '文化': 1040, '達(dá)人': 1041, '數(shù)碼科技': 1042, '直播中國(guó)': 1043, '汽車': 1044,'科普': 1045, '紀(jì)錄片': 1046, '魚鋪': 1047, '教育': 1048, '交友': 1049, '電臺(tái)': 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)到此某魚的全棧信息幾乎拿完。如有哪里寫的不妥的歡迎各位大佬來(lái)討論。后續(xù)會(huì)修改。
注:
此博客純手工,如有和其他博主的博客雷同,請(qǐng)麻煩聯(lián)系一下我。
總結(jié)
以上是生活随笔為你收集整理的python爬取某鱼的直播间信息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 操作系统镜像下载
- 下一篇: PropertyUtils.copyPr