RでEutilsを使ってみる

Rによるスクレイピング入門

Rによるスクレイピング入門

上記を参考にEutilsを使用してみる。

library(dplyr)
library(rvest)

pubmedID <- "25517282"
address <- "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pubmed&mode=XML&id="

myXML <- read_xml(paste(address,pubmedID,sep=""))

#雑誌名
myXML %>% 
	xml_nodes(xpath="//Journal/Title") %>% xml_text()

#年
myXML %>% 
	xml_nodes(xpath="//JournalIssue/PubDate") %>%
	xml_children() %>%
	xml_text() %>% 
	paste(collapse=" ") 

#ページ数
myXML %>% 
	xml_nodes(xpath="//MedlinePgn") %>% xml_text()

#タイトル
myXML %>% 
	xml_nodes(xpath="//ArticleTitle") %>% xml_text()

#アブストラクト
myXML %>% 
	xml_nodes(xpath="//AbstractText") %>% 
        xml_text() %>%
        paste(collapse=" ")

補足

「paste」の使い方
文字列を単純に結合する場合には「sep」を指定
文字列ベクトルを結合する場合には「collapse」を指定

> paste("aaa", "bbb" , sep="#")
[1] "aaa#bbb"
> paste("aaa", "bbb" , collapse="#")
[1] "aaa bbb"
> paste(c("aaa", "bbb") , sep="#")
[1] "aaa" "bbb"
> paste(c("aaa", "bbb") , collapse="#")
[1] "aaa#bbb"