python数据爬取教学_Python教程之B站IT教程数据爬取

B站是个非常神奇的网站,里面的内容可谓是包罗万象,有趣的弹幕文化也能极大地提高大家的体验,B站也逐渐地成为了一个用来学习的“神器”。

近期B站获得了央视网的力挺,报道称B站已经成为了越来越多的年轻人的学习阵地,正所谓“我在B站看番,你却在B站学习” ,今天我们就来爬取B站上那些播放量、弹幕量排名靠前的编程类视频,一起去了解B站的另一面。

数据来源

我们此次的数据主要来源于B站搜索框中输入“编程”后的视频列表及相关信息:

B站一共提供了物种视频排序的方式,每种能够返回前1000个视频,我们分别爬取五种排序所得到的1000个视频之后对5000个视频进行排序,最终得到了2000多个编程类视频的信息

同时我们也增加了一些筛选条件,使得最终获取到的编程教学视频更具代表性:a.所属分类为科技类 b.视频时长大于60分钟,

其中参数是duration表示时长,tids_1 表示分类

部分代码如下:

## 获得列表

def get_list(i,j):

attempts = 0

success = False

while attempts < 5 and not success:

try:

url = 'https://search.bilibili.com/all?keyword=%E7%BC%96%E7%A8%8B&from_source=banner_search&order={}&duration=4&tids_1=36&page={}'.format(i,j+1)

header = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win32; x32; rv:54.0) Gecko/20100101 Firefox/54.0',

'Connection': 'keep-alive'}

cookies ='v=3; iuuid=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; webp=true; ci=1%2C%E5%8C%97%E4%BA%AC; __guid=26581345.3954606544145667000.1530879049181.8303; _lxsdk_cuid=1646f808301c8-0a4e19f5421593-5d4e211f-100200-1646f808302c8; _lxsdk=1A6E888B4A4B29B16FBA1299108DBE9CDCB327A9713C232B36E4DB4FF222CF03; monitor_count=1; _lxsdk_s=16472ee89ec-de2-f91-ed0%7C%7C5; __mta=189118996.1530879050545.1530936763555.1530937843742.18'

cookie = {}

for line in cookies.split(';'):

name, value = cookies.strip().split('=', 1)

cookie[name] = value

html = requests.get(url,cookies=cookie, headers=header).content

bsObj = BeautifulSoup(html.decode('utf-8'),"html.parser")

script = bsObj.find_all('script')[3].text

info = json.loads(script.replace('window.__INITIAL_STATE__=','').split(';(function()')[0])['allData']['video']

return info

except:

attempts = attempts+1

return []

coding_all = []

type = ['click','stow','dm']

for i in type:

for j in range(50):

this_coding = get_list(i,j)

coding_all = coding_all+this_coding

最终,我们获取到了如下的视频信息列表:

数据分析

获取到数据之后,我们首先关注的是这些视频的主要内容,通过视频给出的标签,绘制整体内容总结的词云图:

下面我们来看一下各编程语言的播放量及弹幕量对比:

我们此次将linux也划分到语言类中,可以看到目前基本上就是处于Python、C语言、Java三组鼎力的态势,Python略微领先于其他两种语言,这也一定程度反映了当今的整体发展趋势。由此可见,B站的内容也是与时俱进,适合年轻人去学习了解编程整体发展趋势。

看完了语言类,我们再来看一下具体的技术类排行榜:

可以看到,前端、人工智能、数据框、爬虫这些大家比较关心以及公司有较大需求量的技术都出现在了榜单中,在B站如果能将自己所要从事领域的视频认真学习,也会有很大的提高,部分代码如下:

## 分组统计

coding_tag = dataframe_explode(coding,'tag')

coding_tag['tag'] = coding_tag['tag'].apply(str.lower)

coding_tag['type'] = coding_tag['tag'].map({tag_dict['tag'][k]:tag_dict['type'][k] for k in range(tag_dict.shape[0])})

coding_tag = coding_tag.groupby(['title','pic','author','arcurl','tag','type'],as_index=False).agg({'play':'max','danmu':'max','favorites':'max','review':'max'})

tag_count = coding_tag.groupby(['tag','type'],as_index=False).agg({'title':['count'],'play':['sum'],'danmu':['sum'],'favorites':['sum']})

tag_count.columns = ['tag','type','num','play','danmu','favorites']

## 绘制图片

coding_stat = tag_count[tag_count['type']=='语言']

coding_stat.sort_values('play',ascending=False,inplace=True)

attr = coding_stat['tag'][0:10]

v1 = coding_stat['play'][0:10]

bar = Bar("语言类播放量TOP10")

bar.add("播放数量", attr, v1, is_stack=True, xaxis_rotate=30,xaxis_label_textsize=18,

xaxis_interval =0,is_splitline_show=False,label_text_size=12,is_label_show=True)

bar.render('语言类播放量TOP10.html')2020千锋Python入门视频全套全开源(最新版)_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.comhttps://www.bilibili.com/video/BV1jt4y1X78d?ssss​www.bilibili.com

原文来自知乎:千锋Python学院

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值