抽取記者,時間, 報導來源
library(magrittr)
metadata <- udn$meta %>%
gsub('(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}) (.*?) (.*) function(.*)','\\1|\\2|\\3', x=.) %>% strsplit('\\|')
metaall <- do.call('rbind', metadata)
colnames(metaall) <- c('datetime', 'source', 'reporter')
udn$meta <- NULL
udn <- cbind(udn, metaall)
清理文章資料
udn$article <- as.character(udn$article)
contentclean <- function(news){
news %>% strsplit("function .*? \\{.*?\\} ") %>% .[[1]] %>% .[2] %>% strsplit('facebook twitter pinterest') %>% unlist() %>% trimws() %>% paste(collapse=' ')
}
udn$article <- sapply(udn$article, contentclean)
轉換時間資料
udn$datetime <- strptime(udn$datetime, '%Y-%m-%d %H:%M')
資料儲存
library(RJDBC)
## Loading required package: DBI
## Loading required package: rJava
jar.loc <- 'C:\\Program Files (x86)\\MySQL\\Connector.J 5.1\\mysql-connector-java-5.1.38-bin.jar'
drv <- JDBC("com.mysql.jdbc.Driver",
jar.loc,
identifier.quote="`")
conn <- dbConnect(drv, "jdbc:mysql://localhost/udn_news", "root", "test")
建立新聞資料表
CREATE TABLE `udn_main` (
`title` varchar(1000) DEFAULT NULL,
`article` text,
`datetime` date,
`source` varchar(100) DEFAULT NULL,
`reporter` varchar(100) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
使用Append 新增資料
#寫入資料
dbWriteTable(conn, 'udn_main', udn, append=TRUE,row.names=FALSE,overwrite=FALSE)
## [1] TRUE
關閉連線
dbDisconnect(conn)
## [1] TRUE