在這篇文章,主要展示的是如何抓取Google學術網頁。
示例展示的是用rvest包來抓取作者博士指導老師的個人學術數據。Hadley Wickham在RStudio Blog中寫道:「rvest的靈感來源於類似beautiful soup這樣可以輕易的從HTML網頁抓取數據的一些庫」。因為它被設計成跟magrittr一起使用。我們可以通過一些簡單和易於理解的代碼塊組成的管道操作來表示複雜的操作。
註:要完成以下案例演示需具備科學上網的條件
加載R包:
用ggplot2包來作圖
他的論文被引用了多少次?使用SelectorGadget的CSS選擇器來找出"cited by"列。
在html_nodes()中指定CSS選擇器,html_text()用來提取文本。最後,用as.numernic()將字符串類型轉換為數值類型。
查看引用此次數:
繪製引用次數的條形圖:
同樣,我們使用SelecotGadget的CSS選擇器來找出匹配的合著者:
查看下合著者
截止到2016年1月1日,他的合著者共有27人。
他的合著者被引用了多少次?
通過全局替代提取數值字符串
將字符串轉成數值型,再得到ggplot2可用的數據框格式:
合著者的附屬機構根據引用次數,對合著者重新排序
根據引用次數對合著者重新排序,以便得到遞減的順序圖:
與他合著的科學家中,有引用超過了12000次。他的學生中像我(圖中最後一個)這樣的剛處在"學走路的階段"。
總結在這篇文章,我們看到了如何抓取Google學術數據。我抓取了我導師的帳戶,獲得了論文引用次數數據,合著者的附屬機構以及他們被引用的次數。
正如我們在這篇文章所看到的一樣,利用rvest包可以很容易的抓取HTML網頁數據。同樣重要的是,SelectorGadget通過CSS選擇器可以幫助我們找出感興趣的數據。
修正:我的導師告訴我Google學術只收錄了他的小部分合著者。跟他合作發表的一些科學家以及一些引用很多次文章並沒有顯示出來。進一步,上面得到的結果對於有些人來說是不符合常理的(如:資歷更深的人發表了更多的文章卻比資歷淺的人引用的次數更少)。因此,Google學術數據應該謹慎使用。
文章選自:雪晴數據網