大概5年前稍稍研究过Rselenium这个包,写过几行代码,至今有很长时间没有用了。偶尔需要用httr或者revst也能搞定。
最近因为需要批量完成选题,又祭出Rselenium折腾了一下。顺便把部分基础的代码贴着供大家参考。
|
|
需要注意的是,国内可能无法访问selenium API的网址无法自动下载程序文件,需事先配置好“chromedriver”、“selenium-server-standalone”两个文件。我这边是直接丢到项目根文件夹下。
如果没有特殊情况的话,运行上面的代码可以看到程序会打开chrome浏览器开启调试状态,并跳转到指定的URL。后续的工作要怎么做需要根据各自的需求而写代码。简单来说就是:
根据CSS 或者 XPath定位网页位置,获取所需的信息(文字、链接、图片等)。
1
PageSource = remDr$getPageSource() %>% unlist() %>% read_html() %>% html_nodes(xpath = "//*[@id=\"answer\"]") %>% html_text()
根据CSS 或者 XPath定位网页位置,模拟鼠标行为。
1 2
webElem <- remDr$findElement(using = "xpath", value = "/html/body/div[1]/div/div[3]/div[1]/div[6]/a[2]") webElem$clickElement()
完成工作需要将页面关闭
1
remDr$close()
对于常规的页面来说,还是比较简单的。国内对于爬虫还是比较敏感,鉴于安全考虑,整个源码就不贴出来了,只是从技术从面探讨Rselenium使用的思路。