2013-04-24 57 views
1

我想webscrape以下网站:Webscraping问题涉及点击(使用R)

http://www.healthgrades.com/hospital-directory/california-ca-san-mateo/affiliated-physicians-HGSTED418D46050070

我使用R键webscrape的网站。特别是,我试图从本网站复制所有医生的姓名和专业。然而,我正在处理的主要问题是,当我按下箭头/下一个按钮时,url链接不会改变。我无法使用任何基本技术来webscrape此页面。我怎么解决这个问题?将所收集的所有数据收集到一个数据矩阵/电子表格中将会很好。

+0

它是'POST'形式,还是它是一些Javascript/AJAX巫术? – 2013-04-24 02:37:49

+0

我不是特别确定它是否是邮政形式。我对这个术语不熟悉。检查链接找出。 – mtber75 2013-04-24 03:00:35

回答

2

看起来他们正在使用的变量

?pagenumber=x 

你也许可以遍历x,让您的数据。


在一个侧面说明,

我不知道你正在使用的浏览器,而Chrome有一个方便的功能,您可以用鼠标右键点击一个按钮,并选择inspect element

3
dum <- "http://www.healthgrades.com/hospital-directory/california-ca-san-mateo/affiliated-physicians-HGSTED418D46050070" 
library(XML) 
ddum <- htmlParse(dum) 
noofpages <- xpathSApply(ddum,'//*/span[@class="paginationItem active"]/following-sibling::*[1]',xmlValue)[1] 
noofpages <- (as.numeric(gsub(' of ','',noofpages))-1)%/%5+1 
doctors <- c(); dspec <- c() 
for(i in 1:noofpages){ 
if(i>1){ 
    ddum <- htmlParse(paste0(dum,"?pagenumber=",i,'#')) 
} 
doctors <- c(doctors, xpathSApply(ddum,'//*/a[@class="providerSearchResultSelectAction"]',xmlValue)) 
dspec <- c(dspec, xpathSApply(ddum,'//*/div[@class="listingHeaderLeftColumn"]/p',xmlValue)) 
} 

paste(doctors,dspec,sep=',') 
# [1] "Dr. Julia Adamian, MD,Internal Medicine"        
# [2] "Dr. Eric R. Adler, MD,Internal Medicine"        
# [3] "Dr. Ramzi S. Alami, MD,General Surgery"         
# [4] "Dr. Jason L. Anderson, MD,Internal Medicine"       
# [5] "Dr. Karl A. Anderson, MD,Urology"          
# [6] "Dr. Christine E. Angeles, MD,Geriatric Medicine, Pulmonology"   
+0

+1努力和时间!做得好 – 2013-04-24 05:06:48