生而爲人,學無止境。
作爲爬蟲愛好者,最開始的時候多少都會遇到爬取的時候返回各種bug,抓頭撓耳吧;
R語言爬蟲的包基礎的就是rvest和RCurl,解析的就是xml包,當然你還得有html、css、http協議;
但基本的包僅對於靜態網頁的爬取比較有效,而對於動態網頁(渲染網頁)就沒用了;
接下來寫一下R語言裏面對於動態網頁爬取(AJAX異步渲染/加載網頁)的前期環境配置/搭建(模擬瀏覽器操作)。這裏講的是Rselenium的,至於Rwebdriver包的話類似,但現在它的包不好下載。
1、基於Rselenium包的環境搭建
install.packages("RSelenium")
library(RSelenium)
#瀏覽器控制函數
remdr <- remoteDriver(browserName ="firefox")
# 打開瀏覽器,運行這你會很驚喜
remdr$open()
若你直接下載Rselenium並加載,然後打開瀏覽器的話就會立馬報錯:
當然這肯定是錯誤的做法,但同時你也可以看到它的一點提示:Unable to create new service: GeckoDriverService
GeckoDriver是firefox瀏覽器的驅動,忘了說,這裏是以firefox瀏覽器爲例哦,支持的其他瀏覽器如chrome類似。
你需要去下載firefox的這個驅動文件,然後放到你安裝firefox的目錄下。
2、firefox瀏覽器安裝後需要將其安裝路徑加到系統環境變量中去,記得要把GeckoDriver放到你的瀏覽器安裝目錄下。
3、java環境配置,下載java https://www.java.com/en/download/manual.jsp
下載後配置環境,系統環境中3個變量
3.1 java_home添加,值爲E:\java\jdk-11.0.1 這個就是你放的路徑了;
3.2 classpath添加,值爲%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
3.3 path中添加%JAVA_HOME%\bin
3.4 配置完成後在系統命令中測試,win+r cmd 打開,輸入javac,返回未報錯即配置成功。
4、selenium環境配置,先下載selenium,下載新版的爲好
接下來就是運行它了哈,在命令窗口輸入java -jar selenium-server-standalone-3.141.59.jar,注意前面的路徑是你selenium所在的路徑哦,但是這樣很可能會出現下面的錯誤,這裏也給了反饋,下面畫紅線的部分解決即可。
此處需要將佔用4444端口的進程給結束掉,如何去找?win+r中輸入netstat -ano所有連接的pid,這個pid所對應的進程需要去任務管理中找到,在詳細信息欄中。
完成後再次在命令窗口測試,顯示如下即運行正常
5、 在R(Rstudio)中測試並運行
運行正常,完美,以後不用愁怎麼爬取渲染的網頁了吧,但是有一點,R的爬蟲未嘗試過大量的數據爬取,相對來說用python還是要好很多。
想知道下面代碼運行後什麼效果嗎?趕緊試試吧