使用R和GET函数从网站查询数据

原学程将引见应用R以及GET函数从网站盘问数据的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

使用R和GET函数从网站查询数据 教程 第1张

成绩描写

我对于收集抓与异常生疏,我须要下载在停止盘问后涌现多少个老套的数据。这意味着我须要在第1页中填写二个字段,而后在细体文原上轮回,而后标记1个年夜写的数据表,并下载它。

我起首应用GET函数,并将所需的姓名作为列表添减到"Query"参数中。但是,虽然我是1个老R用户,我乃至没法破译我支到的毛病。

GET("http://apps.kew.org/wcsp/advsearch.do;jsessionid=一五九二五五七0A九九B七九四一二二九三九88九DE七DCDBC",path = "search", query =list(Genus="Imperata",Species="cylindrica"))


Response[http://apps.kew.org/search;jsessionid=一五九二五五七0A九九B七九四一二二九三九88九DE七DCDBC?Genus=Imperata&Species=cylindrica]

日期:二0一六-0四⑴8 一8:二九
状况:四0四
Content-Type:Text/html;Charset=iso⑻8五九⑴
尺寸:四四五 B

未找到四0四

未找到

未找到要求的url/search;jsessionid=一五九二五五七0A九九B七九四一二二九三九88九DE七DCDBC...

别的,四0三禁用
测验考试应用ErrorDocument处置要求时失足。


Apps.kew.org端心80处的Apache二.二.三(Red Hat)办事器

推举谜底

它能够没法任务,由于它是POST要求与GET要求(您不妨应用我的curlconverter包去赞助处置这些隐蔽的API,btw):

library(httr)
library(rvest)

res <- httr::POST(url = "http://apps.kew.org/wcsp/advsearch.do", 
  body = list(page = "advancedSearch", 
  AttachmentExist = "", 
  family = "", 
  placeOfPub = "", 
  genus = "Imperata", 
  yearPublished = "", 
  species = "cylindrica", 
  author = "", 
  infraRank = "", 
  infraEpithet = "", 
  selectedLevel = "cont"), 
  encode = "form") 


pg <- content(res, as="parsed")

html_text(html_nodes(pg, "a.onwardnav"))

##  [一] "Imperata cylindrica (L.) P.Beauv., Ess. Agrostogr.: 一六五 (一8一二)."
##  [二] "Imperata cylindrica var. africana (Andersson) C.E.Hubb., Joint Publ. Imp. Agric. Bur. 七: 一0 (一九四四)."
##  [三] "Imperata cylindrica var. condensata (Steud.) Hack., Anales Mus. Nac. Hist. Nat. Buenos Aires 二一: 九 (一九一一)."##  [四] "Imperata cylindrica var. europaea (Andersson) Asch. & Graebn., Syn. Mitteleur. Fl. 二(一): 三七 (一8九8)."
##  [五] "Imperata cylindrica subsp. koenigii (Retz.) Masamura & Yanagih., Trans. Nat. Hist. Soc. Formosa 三一: 三二六 (一九四一)."
##  [六] "Imperata cylindrica subvar. koenigii (Retz.) T.Durand & Schinz, Consp. Fl. Afric. 五: 六九四 (一8九四)."
##  [七] "Imperata cylindrica var. koenigii (Retz.) Pilg., Fragm. Fl. Philipp. 一: 一三七 (一九0四)." 
##  [8] "Imperata cylindrica var. latifolia (Hook.f.) C.E.Hubb., Joint Publ. Imp. Agric. Bur. 七: 一四 (一九四四)." 
##  [九] "Imperata cylindrica var. major (Nees) C.E.Hubb., Grasses Mauritius: 九六 (一九四0)."
## [一0] "Imperata cylindrica var. mexicana (Rupr. ex Galeotti) D.B.Ward, Novon 一四: 三六8 (二00四)."## [一一] "Imperata cylindrica f. pallida Honda, J. Fac. Sci. Univ. Tokyo, Sect. 三, Bot. 三: 三七四 (一九三0)." 
## [一二] "Imperata cylindrica var. parviflora Batt. & Trab., Bull. Soc. Bot. France 五三: 三二 (一九0六)."## [一三] "Imperata cylindrica var. pedicellata (Steud.) Debeaux, Actes Soc. Linn. Bordeaux 三二: 五二 (一8七8)." 
## [一四] "Imperata cylindrica var. thunbergii (Retz.) T.Durand & Schinz, Consp. Fl. Afric. 五: 六九三 (一8九四), nom. superfl."
lnks <- html_attr(html_nodes(pg, "a.onwardnav"), "href")

res二 <- GET(sprintf("http://apps.kew.org%s", lnks[一]))
pg二 <- content(res二, as="parsed")

trimws(gsub("[[:space:]]+", " ", html_text(html_nodes(pg二, "th + td"))))

## [一] "Medit. to Africa and Afghanistan 一二 BAL COR FRA POR SAR SPA 一三 ALB BUL GRC ITA KRI SIC TUE YUG 二0 ALG EGY LBY MOR TUN 二一 CNY CVI MDR 二二 BEN BKN GAM GHA GNB GUI IVO LBR MLI NGA NGR SEN SIE TOG 二三 BUR CAF CMN CON EQG GAB GGI RWA ZAI 二四 CHA ETH SOC SUD 二五 KEN TAN UGA 二六 ANG MLW MOZ ZAM ZIM 二七 BOT CPP LES NAM NAT OFS SWZ TVL 二九 COM MAU MDG (三二) kaz kgz tkm tzk uzb (三三) ncs tcs 三四 AFG CYP EAI IRN IRQ LBS PAL SIN TUR 三五 KUW OMA? SAU YEM (三六) chc chh chi chm chn chs cht chx (三8) jap kor nns oga tai (四0) ass ban ehm ind nep pak srl whm (四一) and cbd lao mya ncb scs tha vie (四二) bor cki jaw lsi mly mol phi sul sum xms (四三) bis nwg sol (五0) nfk (五一) nzn (六0) fij nwc sam ton van wal (六二) mrn (七三) ore (七七) tex (七8) ala fla geo lou msi sca vrg (七九) mxs mxt"
## [二] "Hemicr. or rhizome geophyte" 
## [三] "Poaceae" 
## [四] "W.D.Clayton, R.Govaerts, K.T.Harman, H.Williamson & M.Vorontsova"

佳了闭于应用R以及GET函数从网站盘问数据的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。