используя R, чтобы очистить данные от javascripted кнопки загрузки - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь очистить сгенерированный CSV-файл, нажав кнопку «CSV» на этом сайте (расположенном под левой стороной графика). Проблема в том, что CSV генерируется из Javascript, который анализирует встроенную таблицу (ниже середины графика). Я знаю, что могу просто поцарапать встроенный стол. Я не хочу этого делать.

Я хочу решение, которое использует R для загрузки CSV с помощью кнопки «CSV». Моя попытка пока использует r пакеты "rvest" и "V8". Я просто запутался в том, что я делаю, так как не могу найти хороших примеров использования пакета V8 для кнопок загрузки javascript. Вот что я получил до сих пор.

Я запутался в строке ct <- v8 () и далее ... Как применить пакет V8 в контексте javascript в исходном коде вышеуказанный URL? </p>

library(rvest)
library(V8)

URL <- https://www.bankofengland.co.uk/boeapps/database/fromshowcolumns.asp?Travel=NIxSTxTIxSUx&FromSeries=1&ToSeries=50&DAT=RNG&FD=1&FM=Jan&FY=2009&TD=30&TM=Mar&TY=2020&FNY=&CSVF=TT&html.x=91&html.y=29&C=IIN&Filter=N#

raw_html <- GET(URL) %>% 
     content() %>% 
     rvest::html_nodes("script") %>% 
     html_text() 

 ct <- v8() 

   read_html(ct$eval(gsub('document.ready','',raw_html))) %>% 

   html_text()

Для контекста javascript для кнопок такие, как показано ниже

<script>
$(document).ready(function() {
    $.fn.dataTable.moment( 'DD MMM YY' );

    $('#stats-table').DataTable( {
    paging: false,
    "info":     false,
    "order": [ 0, 'desc' ],
    fixedHeader: {
    header: true
    },
     dom: 'Bfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'print'
        ]
    } );

} );
</script>
...