r在抓取网页时从儿童班获得价值

2023-03-22
前端之家小编收集整理的r在抓取网页时从儿童班获得价值内容,希望整理的这个开发编程问题r在抓取网页时从儿童班获得价值能够快速解决!

代码问题

我想从站点获取相状态列表。我编写这样的代码:

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">

结果应该是:

нефтегазовое
газонефтяное
нефтегазоконденсатное

,依此类推。我应该使用什么功能解决我的问题?

问题答案

您可以使用

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/-这是您的示例的屏幕截图:

enter image description here

,

您可以从下拉选项中拉出,然后获得不重复的唯一列表。取决于您是否需要重复的完整列表。

library(rvest)
library(magrittr)

phases <- (read_html('https://energybase.ru/en/oil-gas-field/index') %>%
          html_nodes('#fieldsearch-phase option') %>%
          html_text())[-1]

如果觉得前端之家所整理的内容很不错的话,欢迎点击下方分享按钮,转发给身边开发程序员好友。

编程问答


是否可以将 Python 程序转换为 C/C++? 我需要实现几个算法,我不确定性能差距是否足以证明我在 C/C++ 中执行它时所经历的所有痛苦(我不擅长)).我想写一个简单的算法,并根……
我想使用 NTT 进行快速平方(请参阅快速 bignum 平方计算),但即使对于非常大的数字……超过 12000 位.
C++ 标准在 3.3.2声明点\"中包含一个半著名的令人惊讶\"名称查找示例: int x = x; 这用自身初始化 x,它(作为原始类型)未初始化,因此具有不确定的值(假设它是一个自动变……
以下代码: myQueue.enqueue(\'a\'); myQueue.enqueue(\'b\'); cout << myQueue.dequeue() << myQueue.dequeue();
据我所知,写时复制不是在 C++11 中实现符合标准的 std::string 的可行方法,但是当它最近在讨论中出现时,我发现我自己无法直接支持这种说法.