赞
踩
随着2012年开始直播行业的兴起,吃外卖看直播成了很多大学生每天都会做的事(当年我们宿舍的就是这么过来的╮( ̄▽ ̄)╭)
,伴随着最近自己很喜欢的一位主播跳槽到海鲜台,所以就打算扒一扒这个海鲜台,本篇文章分成2个部分:
本篇先对第一部分进行阐述。
基于上图,我们可以看出:
将分类做为入口,获取每个分类下的游戏列表,爬取分类下每个游戏的url,然后进入具体的游戏页面,拿英雄联盟为例:
基于上图,我们在页面可以轻易的获取到以下三个信息:
游戏名称:game_name
、开播人数:paly_num
、观看热度:watch_num
海鲜台已经帮我们做好统计,我们直接截取就ok了。
但是,万一有些直播节目斗鱼没有做这方面的统计呢?比如下面这个游戏直播页面是这样的:
从上图可以发现,我们只能获取到游戏名称:game_name
,拿不到开播人数:paly_num
和观看热度:watch_num
。
对于这样的情况,我们能想到的就是自己做统计,或许搜索框是我们的一个入手点:
果然,通过搜索框,我们能获取到开播人数paly_num
,通过搜索接口查询相比我们进去游戏直播列表一个一个页面做统计是不是便捷了很多,有了开播人数paly_num
,观看热度watch_num
的获取也挺容易:
将每一个直播的热度做一个统计就能得到观看热度
。
点击顶部的网游竞技
,我们能从浏览器的network中获取到如下url:https://www.douyu.com/directory/index/PCgame?isAjax=1
,这就是我们需要的分类url,其他分类也可以通过这样的做法来查看获取,获取到全部分类的url之后,我们可以定义一个字典来存放我们的分类:
# 斗鱼直播分类字典,key为直播分类名称,value为分类URL
classify_dict = {
'网游竞技' : 'https://www.douyu.com/directory/index/PCgame?isAjax=1',
'单机热游' : 'https://www.douyu.com/directory/index/djry?isAjax=1',
'手游休闲' : 'https://www.douyu.com/directory/index/syxx?isAjax=1',
'娱乐天地' : 'https://www.douyu.com/directory/index/yl?isAjax=1',
'颜值' : 'https://www.douyu.com/directory/index/yz?isAjax=1',
'科技教育' : 'https://www.douyu.com/directory/index/kjjy?isAjax=1',
'语音直播' : 'https://www.douyu.com/directory/index/voice?isAjax=1',
'正能量' : 'https://www.douyu.com/directory/index/znl?isAjax=1'
}
通过浏览器访问分类url,比如我们访问网游竞技的url,并查看页面源代码:
从源代码上看,a
标签里面的href
属性就是我们需要的游戏url,具体做法:
首先我们先定义一个浏览器伪装池,每次访问url时进行浏览器伪装,保证url访问的正常:
# 浏览器伪装列表
user_agent_pools = [
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
'Mozill
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。