我正在尝试通过网络抓取通过单击此site(位于图表左侧下方)上的“ CSV”按钮生成的csv。问题是CSV是由Javascript生成的,该Javascript解析嵌入的表格(在图表的下方)。我知道我只能刮擦嵌入式桌子。我不想这样做。
我想要一个使用R从“ CSV”按钮下载csv的解决方案。到目前为止,我尝试使用r包“ rvest”和“ V8”。我只是对自己的工作感到困惑,因为我找不到在JavaScript下载按钮上使用的V8软件包的良好示例。这就是我到目前为止所得到的。
我对ct <-v8()之前的行感到困惑...如何在上述URL的源代码中的javascript上下文中应用V8软件包?
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>