爬取b站全站视频榜单保存到mysql
  WIU1Qlm7CwPb 2023年11月02日 55 0

爬取b站视频的全站板块的排行榜单

提取出标题,地址,评论数量等等

并且写入到mysql

需要用到这四个库

import requests
import json
from sqlalchemy import create_engine
import pandas

最后效果

爬取b站全站视频榜单保存到mysql_获取数据

点赞分享视频

公众号回复 b站全站榜单 获取源代码


打开网站

https://www.bilibili.com/v/popular/rank/all/

打开开发者模式

找到这个文件,里面存放的就是榜单视频信息

爬取b站全站视频榜单保存到mysql_mysql_02

请求方法地址

爬取b站全站视频榜单保存到mysql_获取数据_03


接下来用python爬取下来这个文件

然后处理数据

获取数据

# 获取数据
url ='https://api.bilibili.com/x/web-interface/ranking/v2?rid=0&type=all'
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.57'
}


response = requests.get(url=url,headers=headers).text

处理数据

获取到里面的每一个列表

每个列表就是一个视频的信息

排名是降序
每获取一条数据,就整合成一个列表

然后添加到另一个列表里面,方便为了转成DataFrame对象

response = requests.get(url=url,headers=headers).text
data = json.loads(response)
lis = data['data']['list']


li = []


for i in lis:
     spbt = i['title']           # 标题
     spdz = 'https://www.bilibili.com/video/' + i['bvid']    # 视频地址
     zz = i['owner']['name']    # 作者
     bfl = i['stat']['view']    # 播放量
     pls = i['stat']['reply']  # 评论数
     dm = i['stat']['danmaku']    # 弹幕数量
     fx = i['stat']['share']    # 分享
     dz = i['stat']['like']    # 点赞
     sc = i['stat']['favorite']    # 收藏
     tb = i['stat']['coin']    # 投币
     li.append([spbt,spdz,zz,bfl,pls,dm,fx,dz,sc,tb])

转成DataFrame对象,索引+1 ,当作排名

爬取b站全站视频榜单保存到mysql_数据_04

最后保存到mysql

首先打开你的mysql服务

然后在python里连接mysql

HOSTNAME = '127.0.0.1' 
USERNAME = 'root'   # 用户
PORT = 3306    # 端口
PASSWORD = '填写自己的密码'
DATABASE = '连接到的数据库(一定要先创建好这个库)'
CHARSET='utf8mb4'   # 编码格式


# 使用sqlalchemy连接数据库
engine = create_engine(f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset={CHARSET}')


然后是把DataFrame对象保存到mysql里

# 保存到sql
df.to_sql(name='b站视频榜单',con=engine,if_exists='replace',index=True,index_label='排名')
# name 是要保存的表的名称
# con 是连接数据库的一个对象
# if_exists是如果有这个表里面有信息的时候它的操作 replace 是替换
# index 表示 是否把df里的索引列保存进去
# index_label 表示 保存的这列索引的名字叫什么

爬取b站全站视频榜单保存到mysql_获取数据_05

最后看效果

爬取b站全站视频榜单保存到mysql_mysql_06

爬取b站全站视频榜单保存到mysql_获取数据

感谢观看

欢迎分享

公众号回复 b站全站榜单 获取源代码



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
WIU1Qlm7CwPb