李建国的个人博客分享 http://blog.sciencenet.cn/u/lijianguo531 聊聊感触、搞点学术、发发牢骚

博文

蹲守科学网的这五年——写在第100篇博客 精选

已有 7256 次阅读 2017-8-4 17:35 |个人分类:往事回顾|系统分类:科研笔记| 统计, 科学网

我在科学网写博客有点像喻海良博主的感觉:休息与放松。但是,为了准备这篇博客,我整整花了5天时间去整理和分析。我在科学网的博客撰写属于中低产田,没有上千上万的博文数量,也很少写关于自己专业学术的东西,更很少码公式,多是自己的胡思乱想。学习R语言已经两年了,这次玩点深奥的,我借助R语言的爬虫算法(这5天都在码代码),将我这前99篇博文做了一个统计分析,也发现了一些有趣的规律,感觉还挺满意:

(1)我是科学网大大的良民

这是我在科学网上发表的前99篇博文的关键词,是从近26万字的博文中统计出来的出现频率最高的前1000个词汇,文字的尺寸越大,表明该词汇出现的频率越高。用一句话把这些词汇串起来的意思就是“中国的科研,论文与学生问题需要研究”,就是这么尿性,活脱一老实本分的科学网假正经,科学网欠我一个良民证。



2)不高产,不温不火,少打嘴仗

我统计了一下我每篇博文的相关参数,平均每篇评论8.68次,每篇阅读4341.53次,每篇热度为7.82。文字总量约为26万字,五年写这么一点,算是比较少的。每篇的评论与推荐数不足10个,不温不火。嘴仗打的也比较少,严格遵循以理服人的原则。



3)内容广泛,发文时间不定,频率不高

博文内容主要是社会热点评述、历史启示录、诗词还有就是科研与论文。发文平均时间在14.82时,那就是在下午2-3点之间。平均发文间隔为17.4天,大约两周半发文一篇,这也太慢了,考虑提速。


回头我再爬一下谁给我的那些博文点赞的,我觉得我们可以成为好朋友!

@科学网编辑如果想分析一下科学网的博客,我乐意效劳


附代码:


library("xml2")

library("rvest")

library("dplyr")

library("stringr")

blogs_list <- data.frame()

name_list<-data.frame()

hits_list <- data.frame()

time_list <- data.frame()


for (i in 1:10){

web<- read_html(str_c("http://blog.sciencenet.cn/home.php?mod=space&uid=419327&do=blog&view=me&from=space&page=",i))


blogs_name<-web%>%html_nodes(".xs2 a+ a")%>%html_text()

a <- data.frame(blogs_name)

a[which(a$blogs_name==""),] <- NA

name_list<- na.omit(a)


blogs_hits<-web%>%html_nodes("dd.xg1")%>%html_text()

b <- data.frame(blogs_hits)

b[which(b$blogs_hits==""),] <- NA

hits_list <- na.omit(b)


blogs_time<-web%>%html_nodes(".xs2+ dd")%>%html_text()

c <- data.frame(blogs_time)

c[which(c$blogs_time==""),] <- NA

time_list <- na.omit(c)




z<-data.frame(name_list,hits_list,time_list)

blogs_list<-rbind(z,blogs_list)


}


x<- strsplit(as.character(blogs_list$blogs_hits),"\|")

blogs_list$评论 <- gsub("个评论", "",sapply(x,"[",2))

blogs_list$评论[blogs_list$评论=="没有评论"] <- 0

blogs_list$阅读 <- as.numeric(gsub("次阅读", "",sapply(x,"[",1)))#http://www.endmemo.com/program/R/gsub.php

y<- strsplit(as.character(blogs_list$blogs_time)," ")

blogs_list$热度 <- as.numeric(sapply(y,"[",2))

blogs_list$热度[which(is.na(blogs_list$热度))] <- 0

blogs_list$日期 <- as.Date(sapply(y,"[",3))

blogs_list$时间 <- gsub("rn", "",sapply(y,"[",4))

blogs_list$时间 <- gsub(Sys.Date(),"",strptime(blogs_list$时间, format ="%H:%M"))

blogs_list$日期[which(is.na(blogs_list$时间))] <- as.Date(gsub("rn","",as.character(blogs_list$blogs_time[which(is.na(blogs_list$时间))])))


blogs_list$时间[which(is.na(blogs_list$时间))] <-gsub("rn", "",sapply(y,"[",2))[which(is.na(blogs_list$时间))]

blogs_list$时间 <- strptime(blogs_list$时间,"%H:%M")

blogs_list$时间 <-gsub(Sys.Date(),"",blogs_list$时间)

blogs_list$public_time <- strptime(paste(blogs_list$日期,blogs_list$时间),format = "%Y-%m-%d %H:%M")

blogs_list$interval_time1 <- strptime(c(blogs_list$public_time[-1],NA),format = "%Y-%m-%d %H:%M")

blogs_list$interval_time<- difftime(blogs_list$public_time,blogs_list$interval_time1,units = "days")

blogs_list$interval_time[blogs_list$interval_time<0] <- NA


blogs_list$具体时间 <- as.numeric(substr(blogs_list$时间,1,3))

mean(as.numeric(blogs_list$热度))

mean(as.numeric(blogs_list$评论))

mean(as.numeric(blogs_list$具体时间))

mean(as.numeric(blogs_list$interval_time),na.rm = T)

write.csv(blogs_list[,c(1,4:8,10)],file="D:\学习\blogs_list.csv")


lj <- read.table("E:\H\R\博客链接.txt",header = F,sep = "")

dlist <- sapply(lj[13:dim(lj)[1],], function(x) substr(x,39,44))

dlist1<- sapply(lj[1:12,], function(x) substr(x,39,45))

x <- data.frame(dlist1)

y <- data.frame(dlist)

colnames(y)[1] <- "dlist1"

m <- rbind(x,y)

m <- as.numeric(levels(m$dlist1)[m$dlist1])

m

library(rvest)

n <- data.frame()

for(l in m){

 p <- read_html(paste0("http://blog.sciencenet.cn/blog-419327-",l,".html"))

 blogs_text<-p%>%html_nodes("#blog_article , #blog_article span")%>%html_text()

 v <- data.frame(blogs_text)

 n <- rbind(n,v)

}

n



t <- as.character()

for(i in 1:dim(n)[1]){

 t <- paste(t,n[i,])

}


write.table(t,"E:\H\R\blogs.txt")






library(jiebaR)

library(wordcloud2)

f <- scan('E:\H\R\blogs.txt',sep='',what='')

f <- f[3]

myword <- worker()

new_user_word(myword,

             scan("E:\H\R\我的分词.txt",what="",sep=" "))

seg <- segment(f,myword)

engine_s<-worker(stop_word ="E:\H\R\stop_word.txt", encoding = "UTF-8")

seg <- segment(seg,engine_s)

seg <- seg[nchar(seg)>1]

seg <- table(seg)

length(seg)

seg <- sort(seg, decreasing = TRUE)[1:1000]

seg





library(wordcloud2)

library(htmlwidgets)

windowsFonts(myFont=windowsFont("微软雅黑"))

#pdf("D:\学习\my_cloud.pdf", width = 500, height = 500)

#opar <- par(no.readonly = T)

mydata <- data.frame(names(seg),as.numeric(seg))

wordcloud2(mydata, size = 1,shape='star')  ##?family="myFont"

a <- wordcloud2(mydata, size = 1,shape='star')

htmlwidgets::saveWidget(a, file ="D:\学习\my_cloud.html",selfcontained = FALSE)

#par(opar)

#dev.off()




https://blog.sciencenet.cn/blog-419327-1069553.html

上一篇:好山好水好寂寞
下一篇:建议国家设立公共卫生与安全频道
收藏 IP: 31.54.228.*| 热度|

23 周健 Editage意得辑 武夷山 肖可青 石磊 史晓雷 汪育才 史仍飞 姬扬 徐耀 强涛 黄永义 王凯 郑永军 汪晓军 杨秀海 李曙 胡涛 zjzhaokeqin aliala shenlu xlsd biofans

该博文允许注册用户评论 请点击登录 评论 (9 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-25 21:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部