使用 rvest 和 selectorgadget 从 GEO 提取信息,得到错误:“类中的错误(输出)<-“XMLNodeSet”:尝试将属性设置为 NULL”
Posted
技术标签:
【中文标题】使用 rvest 和 selectorgadget 从 GEO 提取信息,得到错误:“类中的错误(输出)<-“XMLNodeSet”:尝试将属性设置为 NULL”【英文标题】:extract information from GEO using rvest and selectorgadget, get error:"Error in class(out) <- "XMLNodeSet" : attempt to set an attribute on NULL" 【发布时间】:2015-02-03 09:33:36 【问题描述】:我想从this link 获取所有“样本”ID,我的意思是所有 ID,例如“GSM545657”、“GSM545658”...。我想使用新包rvest
来解决我的问题,但是我对CSS 和xpath 不熟悉。我使用selectorgadget 来获取CSS 选择器。
我选择了第一个 ID:“GSM545657”,它变成了绿色,然后我删除了我不想要的信息(它们变成了红色)。现在,所有样品 ID 都是绿色或红色。 CSS 选择器显示如下:"tr:nth-child(23) .eye-protector-processed a" 。我的代码是这样显示的
Library(rvest);
myhtml<-html("http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE21610");
myhtml %>% html_nodes("tr:nth-child(23) .eye-protector-processed a") %>%html_text()
我解决了错误类中的错误(输出) 如果我只选择“GSM545665”和“GSM545666”等两个ID,我可以使用
myhtml %>% html_nodes("tr:nth-child(23) .eye-protector-processed a") %>%html_text()
得到结果,你能告诉我如何解决这个问题,我们将不胜感激。非常感谢!
【问题讨论】:
【参考方案1】:我认为您使用了错误的选择器。这对我有用:
myhtml <- html("http://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE21610")
myhtml %>%
html_nodes("tr:nth-child(23) tr a") %>%
html_text()
(但 rvest 应该会给出更好的错误。我会提交一个错误)
【讨论】:
非常感谢,它确实有效。但是我不太了解 CSS 选择器,所以我使用了 selectorgadget 工具,那么如何使用 selectorgadget 获得正确的结果。您是否有一些建议来学习如何获得正确的 css 选择器模式。再次感谢您! 我使用选择器小工具来生成选择器。 非常感谢。我也使用了选择器小工具,但我不明白为什么我得到了错误的 css 选择器。你能告诉我你的程序来获得正确的选择器吗?以上是关于使用 rvest 和 selectorgadget 从 GEO 提取信息,得到错误:“类中的错误(输出)<-“XMLNodeSet”:尝试将属性设置为 NULL”的主要内容,如果未能解决你的问题,请参考以下文章