[分享] 更进一步使用RSelenium抓取PTT内容与通知

楼主: wanson (望生)   2016-07-24 01:52:16
最近看到有人教学使用RSelenium 抓取PTT的内容
https://www.youtube.com/watch?v=PYy5C9IIgp8
我自学了一下发现的确可行
我自己本身因为有搭共乘的需求
特别搭乘的是比较少人提供的部分
所以我想更进一步使用这个方法并且进一步通知
上述网址的教学只能将爬到的档案存成一个file
并且限制在该网页的首页
但是我希望更多的功能为以下,想要请问一下不知道可否使用R更进一步处理
1. 爬取更多页面或是该版所有的页面
这个部分我发现
他似乎根据网址的index那边变动
如果我使用最旧就会等于1,下一页就是二
但我使用最新他只会显示index
https://www.ptt.cc/bbs/car-pool/index2.html
似乎可以写回圈去提取
2. 定期自动爬虫
我想要让电脑设定每两小时爬一次,不知道要怎样设定
不知道是否可以教学一下
谢谢
以下是使用他的教学我产生的code
library(RSelenium)
url= "https://www.ptt.cc/bbs/car-pool/index.html"
remDr <- remoteDriver(remoteServerAddr = "localhost"
, port = 4444
, browserName ="firefox"
)
remDr$open() #open browser
remDr$getStatus()#check the status of browser
remDr$navigate(url)# website to crawl
#the separate symbol in ppt is r-ent
#get the element from the website
webElem<-remDr$findElements('css selector', ".r-ent")#class for period (.) id
then use #
a = sapply(webElem, function(x){
c =x$findChildElement('css selector', '.author')
d =x$findChildElement('css selector', '.title')
e =x$findChildElement('css selector', '.date')
cbind(c("author" = c$getElementText(), "title" =
d$getElementText(),e$getElementText()))
}
)
t=as.data.frame(t(a))
作者: sulaxd (SulaXD)   2016-07-24 12:04:00
若是非Linux系统的话,可以用Sys.sleep函数控制限制时间,或是windows的排程。
楼主: wanson (望生)   2016-07-24 12:48:00
我学会排程了 另外如果要进一步处理另一个问题要怎办?

Links booklink

Contact Us: admin [ a t ] ucptt.com