我想从站点获取相状态列表。我编写这样的代码:
library("rvest")
library("magrittr")
url <- 'https://energybase.ru/en/oil-gas-field/index'
read_html(url) %>%
html_nodes(".info")%>%
html_children()%>%
html_children()
然后我得到了
[1] <small>City</small>
[2] <div class="value">Игарка</div>
[3] <small>Phase state</small>
[4] <div class="value">нефтегазовое</div>
[5] <small>Извлекаемые запасы A+B1+B2+C1</small>
[6] <div class="value">479.10 mln. tons</div>
[7] <small>City</small>
[8] <div class="value">Тазовский</div>
[9] <small>Phase state</small>
[10] <div class="value">газонефтяное</div>
[11] <small>Извлекаемые запасы A+B1+B2+C1</small>
[12] <div class="value">422.00 mln. tons</div>
[13] <small>City</small>
[14] <div class="value">Лянтор</div>
[15] <small>Phase state</small>
[16] <div class="value">нефтегазоконденсатное</div>
[17] <small>Извлекаемые запасы A+B1+B2+C1</small>
[18] <div class="value">380.00 mln. tons</div>
[19] <small>City</small>
[20] <div class="value">Тобольск</div>
我想在
之后获取所有注释<div class="value">
结果应该是:
нефтегазовое
газонефтяное
нефтегазоконденсатное
,依此类推。我应该使用什么功能解决我的问题?
答案 0 :(得分:1)
您可以使用
read_html(url) %>%
html_nodes(".col-md-8:nth-child(2) .value") %>%
html_text
获得
[1] "нефтегазовое" "газонефтяное" "нефтегазоконденсатное" "нефтяное"
[5] "нефтяное" "нефтегазовое" "нефтяное" "нефтяное"
[9] "нефтяное" "нефтегазоконденсатное" "нефтегазоконденсатное" "нефтяное"
[13] "нефтегазоконденсатное" "нефтегазоконденсатное" "нефтяное" "нефтяное"
[17] "газонефтяное" "нефтегазоконденсатное" "нефтяное" "нефтегазовое"
获取正确的CSS选择器(.col-md-8:nth-child(2) .value
)的一个很好的工具是https://selectorgadget.com/-这是您的示例的屏幕截图:
答案 1 :(得分:1)
您可以从下拉选项中拉出,然后获得不重复的唯一列表。取决于您是否需要重复的完整列表。
library(rvest)
library(magrittr)
phases <- (read_html('https://energybase.ru/en/oil-gas-field/index') %>%
html_nodes('#fieldsearch-phase option') %>%
html_text())[-1]