【发布时间】:2018-10-27 03:36:14
【问题描述】:
我正在尝试使用rvest 从FiveThirtyEight 中获取每日预测,但我感兴趣的对象似乎是一个javascript 对象,我什至很难找到要查找的位置和内容。 (虽然我最近几天尝试自学,但我并不精通 CSS 或 Javascript。)
通过检查网页元素和 CSS 选择器,我发现了以下内容:
-
要看的位置是
<div id="polling-avg-chart">,所以我试了一下library(rvest) url <- "https://projects.fivethirtyeight.com/election-2016/national-primary-polls/democratic/" url %>% read_html() %>% html_nodes("#polling-avg-chart")没有太大的成功。输出很简单
{xml_nodeset (1)}
[1]
以点表示的个人投票结果位于<g style="clip-path: url("#line-clippoll_avg");"> ... </g>,您可以在其中看到 502 个位置的数字。我猜我必须将每个节点的cx 和cy 翻译成适当的百分比,由<g class="flag-box" transform="translate(30, 161.44093322753096)">...</g> 等完成。
但是,我没有看到预测线的基础数据,而不是点。
<line class="hover-date-line hide-line"> 等内容发生了变化,<path class="link" d="M 0 171.40106812500002 C 15 171.40106812500002 15 170.94093803735575 30 170.94093803735575"></path> 等值也发生了变化,我猜这些值是创建每日预测线的原因。李>
我确实阅读了其他一些 SO 帖子,例如 this,但似乎没有一个适用于这个特定问题。在简洁的数据框中获取预测百分比的最佳方法是什么?
标签: javascript html css r rvest