xml – 使用R对房地产广告进行网络抓取
发布时间:2020-12-16 07:50:48 所属栏目:百科 来源:网络整理
导读:作为一名经济研究团队的实习生,我的任务是找到一种方法来自动收集房地产广告网站上的特定数据,使用R. 我假设有关的包是XML和RCurl,但我对他们工作的理解非常有限. 这是该网站的主页:http://www.leboncoin.fr/ventes_immobilieres/offres/nord_pas_de_calais
作为一名经济研究团队的实习生,我的任务是找到一种方法来自动收集房地产广告网站上的特定数据,使用R.
我假设有关的包是XML和RCurl,但我对他们工作的理解非常有限. 这是该网站的主页:http://www.leboncoin.fr/ventes_immobilieres/offres/nord_pas_de_calais/?f=a&th=1&zz=59000 以下是广告的详细信息:http://www.leboncoin.fr/ventes_immobilieres/197284216.htm?ca=17_s 我正在寻找任何帮助,链接到教程或操作方法,这将使我领先一条路.
您可以使用R中的XML包来抓取这些数据.这是一段应该有用的代码.
# DEFINE UTILITY FUNCTIONS # Function to Get Links to Ads by Page get_ad_links = function(page){ require(XML) # construct url to page url_base = "http://www.leboncoin.fr/ventes_immobilieres/offres/nord_pas_de_calais/" url = paste(url_base,"?o=",page,"&zz=",59000,sep = "") page = htmlTreeParse(url,useInternalNodes = T) # extract links to ads on page xp_exp = "//td/a[contains(@href,'ventes_immobilieres')]" ad_links = xpathSApply(page,xp_exp,xmlGetAttr,"href") return(ad_links) } # Function to Get Ad Details by Ad URL get_ad_details = function(ad_url){ require(XML) # parse ad url to html tree doc = htmlTreeParse(ad_url,useInternalNodes = T) # extract labels and values using xpath expression labels = xpathSApply(doc,"//span[contains(@class,'ad')]/label",xmlValue) values1 = xpathSApply(doc,'ad')]/strong",xmlValue) values2 = xpathSApply(doc,'ad')]//a",xmlValue) values = c(values1,values2) # convert to data frame and add labels mydf = as.data.frame(t(values)) names(mydf) = labels return(mydf) } 以下是如何使用这些函数将信息提取到数据框中. # grab ad links from page 1 ad_links = get_ad_links(page = 1) # grab ad details for first 5 links from page 1 require(plyr) ad_details = ldply(ad_links[1:5],get_ad_details,.progress = 'text') 这将返回以下输出 Prix : Ville : Frais d'agence inclus : Type de bien : Pièces : Surface : Classe énergie : GES : 469 000 |