我正在尝试从网站获取数据,并且感谢帮助我可以访问以下脚本:
require(httr)
require(rvest)
res <- httr::POST(url = "http://apps.kew.org/wcsp/advsearch.do",
body = list(page = "advancedSearch",
AttachmentExist = "",
family = "",
placeOfPub = "",
genus = "Arctodupontia",
yearPublished = "",
species ="scleroclada",
author = "",
infraRank = "",
infraEpithet = "",
selectedLevel = "cont"),
encode = "form")
pg <- content(res, as="parsed")
lnks <- html_attr(html_node(pg,"td"), "href")
但是,在某些情况下,如上例所示,它不会检索正确的链接,因为由于某种原因,html_attr在html_node检测到的节点内找不到网址(&#34; href&#34;)。到目前为止,我已经尝试了不同的CSS选择器,例如&#34; td&#34;,&#34; a.onwardnav&#34;和&#34; .plantname&#34;但它们都没有生成html_attr可以正确处理的对象。 任何提示?
答案 0 :(得分:0)
你真的很接近你想要的答案。如果您想从所需页面中拉出链接,那么:
lnks <- html_attr(html_nodes(pg,"a"), "href")
将返回&#34; a&#34;的所有链接列表。用&#34; href&#34;标记属性。请注意,该命令是html_nodes而不是节点。有多个&#34; a&#34;因此复数标记 如果您正在寻找正文中表格中的信息,请尝试以下方法:
html_table(pg, fill=TRUE)
#or this
html_nodes(pg,"tr")
第二行将返回表中9行的列表,然后可以解析这些行以获取行名称(&#34; th&#34;)和/或行值(&#34; td&#34 )
。
希望这会有所帮助。