Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从JavaScript图形刮到R_Javascript_R_Web Scraping - Fatal编程技术网

将数据从JavaScript图形刮到R

将数据从JavaScript图形刮到R,javascript,r,web-scraping,Javascript,R,Web Scraping,我正在尝试从图1中自动获取数据:与2019年相比的用电量。我对从普通页面抓取没有问题,但是这个图表是用JS完成的,我不知道如何继续,也不知道在哪里可以找到图表使用的数据 主页嵌入来自的图形。如果查看嵌入页面的源代码,数据位于javascript变量窗口中。infographicData主页从中嵌入图形。如果查看嵌入页面的源代码,数据位于javascript变量窗口中。infographicData这是一项相对棘手的刮取工作。您正在查找的数据位于Eric Truett链接的页面中。它以JSON字符

我正在尝试从图1中自动获取数据:与2019年相比的用电量。我对从普通页面抓取没有问题,但是这个图表是用JS完成的,我不知道如何继续,也不知道在哪里可以找到图表使用的数据

主页嵌入来自的图形。如果查看嵌入页面的源代码,数据位于javascript变量
窗口中。infographicData

主页从中嵌入图形。如果查看嵌入页面的源代码,数据位于javascript变量
窗口中。infographicData

这是一项相对棘手的刮取工作。您正在查找的数据位于Eric Truett链接的页面中。它以JSON字符串的格式存在于Javascript调用的文本中。因此,您需要采取以下步骤:

  • 识别实际包含数据的页面(正如@EricTrueT所做的那样)
  • 以文本字符串的形式获取html页面
  • 去掉你想要的那部分绳子
  • 解析JSON
  • 获取结果列表中包含所需数据的元素
  • 将该元素转换为所需的格式
  • 我可以向您展示如何执行步骤2、3和4,但步骤5和6取决于您需要输出的具体内容,您在问题中没有指定这些内容。我刚才在这里猜测:

    #步骤1:获取正确的url(通常通过浏览器中的开发人员工具完成)
    uri 5丹麦98.82%-1.00%
    #>6爱沙尼亚97.20%-3.00%
    #>7芬兰92.40%-8.00%
    #>8法国85.87%-14.00%
    #>9德国91.86%-8.00%
    #>10希腊108.48%8.00%
    #> # ... 还有18排
    

    您可能需要在
    map\u data
    中挖掘以获得所需的实际数据。

    这是一项相对棘手的清理工作。您正在查找的数据位于Eric Truett链接的页面中。它以JSON字符串的格式存在于Javascript调用的文本中。因此,您需要采取以下步骤:

  • 识别实际包含数据的页面(正如@EricTrueT所做的那样)
  • 以文本字符串的形式获取html页面
  • 去掉你想要的那部分绳子
  • 解析JSON
  • 获取结果列表中包含所需数据的元素
  • 将该元素转换为所需的格式
  • 我可以向您展示如何执行步骤2、3和4,但步骤5和6取决于您需要输出的具体内容,您在问题中没有指定这些内容。我刚才在这里猜测:

    #步骤1:获取正确的url(通常通过浏览器中的开发人员工具完成)
    uri 5丹麦98.82%-1.00%
    #>6爱沙尼亚97.20%-3.00%
    #>7芬兰92.40%-8.00%
    #>8法国85.87%-14.00%
    #>9德国91.86%-8.00%
    #>10希腊108.48%8.00%
    #> # ... 还有18排
    

    您可能需要深入查看
    map\u data
    ,以获取所需的实际数据。

    谢谢您的帮助,但我最感兴趣的是如何将数据获取到R
    data.frame
    。不幸的是,我不知道任何JS。感谢您的帮助,但我最感兴趣的是如何将数据获取到R
    data.frame
    。不幸的是,我不认识任何JS。
    df
    #> # A tibble: 28 x 3
    #>    Country  Percent Change 
    #>    <chr>    <chr>   <chr>  
    #>  1 Austria  90.44%  -10.00%
    #>  2 Belgium  85.39%  -15.00%
    #>  3 Bulgaria 94.54%  -5.00% 
    #>  4 Croatia  87.16%  -13.00%
    #>  5 Denmark  98.82%  -1.00% 
    #>  6 Estonia  97.20%  -3.00% 
    #>  7 Finland  92.40%  -8.00% 
    #>  8 France   85.87%  -14.00%
    #>  9 Germany  91.86%  -8.00% 
    #> 10 Greece   108.48% 8.00%  
    #> # ... with 18 more rows