用go语言爬取b站,为什么b站是go语言开发的

Scrapy爬虫爬取B站视频标题及链接

研究了一下午,刚刚成功爬出了B站的视频数据以及超链接(虽然方法很笨)。但是还是非常有意思的,这里记录一下过程

成都创新互联服务项目包括夏河网站建设、夏河网站制作、夏河网页制作以及夏河网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,夏河网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到夏河省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

程序用的scrapy,安装方法详见 , 这里可以直接用的CMD创建scrapy项目,只需要输入 scrapy startproject 项目名 即可,会在当前目录下创建一个新文件夹,cd到该文件夹下后,输入scrapy genspider 爬虫名 目标网址来创建你的爬虫文件(如: scrapy genspider sample )

创建爬虫成功后就可以编辑了,打开的爬虫文件(此处为sample.py)可以看到

接下来要定义parse()函数,要用到Xpath选择器来提取网页内标签内容,这里用到Xpath helper可以提高效率 (要打开chrome的开发者模式),或者手动F12筛选元素也可以。

以动画分区顶端推荐视频为例,在页面元素中可以看到它属于

那么只要把这两个标签属性提取出来就可以了,回到爬虫文件,在parse()函数下输入

提取元素路径的过程就不写了,很繁琐(反正我搞得很麻烦),多用.extract()查看当前提取的路径。

可以写到本地,也可以直接在CMD中打印出来。这里我把结果保存到名为 ‘B站结果’ 的txt文档(默认保存在项目文件夹中):

这里只用到一次循环,因为标题和超链接的数量是固定的。

.extract()用于切片(脱壳)从一个对象(此处的DanceTitle,DanceURL)中得到list

在CMD中输入

运行爬虫

这里把目标链接换成任意一个分区都没问题,如

(数码区)

(音乐区)

虽然方法很笨但是最后运行成功的时候还是很开心的,以后也会继续研究爬虫,笨方法终究是不可取的。

b站用的什么典型数据库

Mysql。

B站后台应该也是golang和java混搭的,目前B站不是在逐渐去除java嘛,还有就是B站后台稳不稳定跟用什么搭建没有呀直接关系,与一个系统的架构设计,熔断降级等配置有关系,是否有完善的监控系统,有强大的运维团队,有高质量的代码等因素有关系。从之前B站泄露出来的代码看,目前B站后台的核心技术栈是Go语言。至于为什么用Go语言后面会说到,事实上B站流量在行业内并不是顶尖,就算是用Go语言作为核心技术栈的网站中,B站也不是技术难度最高的。不过同样值得关注的是,B站对于UP主的保护是全行业最佳,刚刚B站也签下了冯提莫,不断大动作的B站未来发展可期。随着行业的不断发展,各种新兴语言不断出现,一个项目中多种语言并存、互补的现象是必然的,也许几十年后你还会发现用Go写的后台被其他语言改写了,或者某种你以为已经成为历史的语言卷土重来也不是没有可能。

如何看待哔哩哔哩用go语言重写所有的java后台工程

抛开个人主观意见,让我们从法律的角度探讨下。著作权法中,有个“著作权的合理使用”,也就是这些使用情况下,可以不受“专有权利”的限制,不构成侵权。其中和这里探讨情况好像有点关系的是:1、个人使用。为个人学习、研究或者欣赏,使用他人已经发表的作品;2、教学使用。为学校课堂教学或者科学研究,翻译或少量复制已经发表的作品,供教学或科研人员使用,但不得出版发行。

因此,b站行为是否合法,需要从法律角度,看看是否符合以上两点。由于翻译并上传确实是供大家学习使用,从主管故意上看,和以上第2条很接近,但如果要严格套用条文,又不是“学校课堂教学”,所以这个行为是否符合“著作权的合理使用”范畴,还需要专业法学人士一起来探讨。


本文标题:用go语言爬取b站,为什么b站是go语言开发的
浏览路径:http://myzitong.com/article/hcpjji.html