一键显示up的粉丝数、视频数据——Mac系统下 R+终端+Keyboard Maestro整活小程序教程
今天来整个活儿,在MAC系统下,我只要按下control+option+B即可在终端中显示出up主的粉丝数和视频各项数据,是不是很好玩呢?


第一步,需要写一段R语言的脚本:红色的地方是需要修改的
我这里直接提供给大家:
suppressMessages(library("httr"))
suppressMessages(library("magrittr"))
suppressMessages(library("rvest"))
suppressMessages(library("xml2"))
suppressMessages(library("stringr"))
suppressMessages(library("dplyr"))
suppressMessages(library("openxlsx"))
suppressMessages(library("writexl"))
suppressMessages(library("knitr"))
# rm(list=ls())
up<-"DODO小狗克里" #在这里输入up主的名称,vmid号以及相关视频的BV号哦!
vmid<-"631185362" #up主的vmid号
BV_list<-c("BV1iM41147qo", #爬取某个视频的数据
"BV1e3411o7up",
"BV1bd4y177aV",
"BV1AG4y1M7c7",
"BV18r4y1e7xQ",
"BV1FY411a7r5",
"BV1Zo4y1Q7NK",
"BV1yf4y1C7Je",
"BV1Ef4y1D7Co")
url <- paste0("https://api.bilibili.com/x/relation/stat?vmid=",vmid,"&jsonp=jsonp")
# 发送 GET 请求,获取页面内容
response <- GET(url)
# 解析页面内容
parsed_html <- read_html(response$content);parsed_html<-as.character(parsed_html)
follower <- str_extract(parsed_html, '\"follower\":\\d+');follower <- str_extract(follower,"\\d+")
bili_data_total<-total<-as.data.frame(matrix(nrow=0,ncol=5))
for (i in 1:length(BV_list)) {
BVid<-BV_list[i]
url<-paste0("https://www.bilibili.com/video/";,BV_list[i],"/?spm_id_from=333.999.0.0&vd_source=0e9474e50ba827d3921782ed599cfd79")
page <- read_html(url)
view_count<-page %>% html_nodes(".view") %>% html_text() %>% trimws()
danmu_count<-page %>% html_nodes(".dm") %>% html_text() %>% as.numeric();danmu_count<-danmu_count[1]
video_title <- page %>% html_nodes(".video-title") %>% html_text() %>% trimws()
pudate<- page %>%html_nodes(".pudate-text") %>% html_text() %>% trimws()
bili_data <- page %>% html_nodes(".info-text") %>% html_text() %>% as.numeric()
bili_data<-as.data.frame(t(bili_data))
bili_data<-cbind(BVid,video_title,bili_data,pudate,view_count,danmu_count,strftime(Sys.time(), format = "%Y-%m-%d %H:%M:%S"))
bili_data_total<-rbind(bili_data_total,bili_data)
}
colnames(bili_data_total)<-c("BV_id","视频名","点赞数","投币数","收藏数","转发数","发表时间","播放量","弹幕数","获取时间")
show_data<-bili_data_total[,c("视频名","点赞数","投币数","收藏数","转发数","播放量","弹幕数")]
show_data$视频名<-substr(show_data$视频名,1,10)
cat("\n")
cat(paste(" ",strftime(Sys.time(), format = "%Y-%m-%d %H:%M")," ",up,"的b站粉丝数是:",follower,sep=""))
kable(show_data, align = "c") # 将所有列居中对齐
# paste0("粉丝数",follower)
wb <- createWorkbook()
sheet<-paste0("粉丝数",follower)
addWorksheet(wb, sheet) # 添加一个工作表
freezePane(wb, sheet, firstRow = TRUE) #冻结首行
writeData(wb, sheet, bili_data_total,
withFilter=T,headerStyle=createStyle(
fontSize = 11, fontName = "Calibri",
textDecoration = "bold", halign = "left"))
saveWorkbook(wb, paste0("/Users/chenchen/Desktop/bilibili/",up,"的b站数据/b站数据.xlsx"), overwrite = TRUE)
beepr::beep(2)
第二步:
输入这个脚本:Rscript右边的部分是上面这个R程序的具体路径
Rscript /Users/chenchen/Desktop/bilibili/b站爬取粉丝数.R
(这一步比较重要,不要出错,注意Rscript右边有一个空格,完成后先打开终端测试一下,可以再进行下一步)
第三步:
这里我把第一步的程序和第三部需要的软件都放在这里了
链接: https://pan.baidu.com/s/1nPdGvGe9ZvVpKLbXvvDVFQ?pwd=8v3a 提取码: 8v3a
--来自百度网盘超级会员v5的分享
安装Keyboard Maestro,然后按照图片进行设置所示:

需设置自定义的快捷键,第二步写的R程序路径名。
好啦,完成之后就可以按下快捷键开始你的表演了~