celestialgod

grab the articles at ptt.cc

Mar 17th, 2016
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 0.85 KB | None | 0 0
  1. library(xml2)
  2. library(RCurl)
  3. library(magrittr)
  4. library(stringi)
  5.  
  6. i <- 2793
  7. data <- NULL
  8. repeat{
  9.   url.list <- try(paste(i, '.html', sep='') %>%
  10.                          paste('https://www.ptt.cc/bbs/Boy-Girl/index', ., sep='') %>%
  11.                          xml2::read_html() %>% xml2::xml_find_all("//div[@class='title']/a[@href]") %>%
  12.                          xml2::xml_attr("href"), silent = TRUE)
  13.   if (any(grepl("Error", url.list)))
  14.     break
  15.   data %<>% c(url.list)
  16.   i <- i + 1
  17. }
  18. data %<>% paste('https://www.ptt.cc', ., sep='')
  19.  
  20. getDoc <- function(line){
  21.   xml2::read_html(line, "UTF-8") %>% xml2::xml_find_one("//div[@id='main-content']") %>%
  22.     xml_text %>% stri_conv("UTF-8", "Big5")
  23.   # stri_conv for windows
  24. }
  25.  
  26. st <- proc.time()
  27. articles <- sapply(data, getDoc)
  28. proc.time() - st
  29. # user  system elapsed
  30. # 3.35    3.70    7.21
Advertisement
Add Comment
Please, Sign In to add comment