Web ページをスクラップしようとしています。この Web ページのデータの一部は、次のスクリプトを使用して更新されます。
<script>
(function ($) {
$(document).ready(function () {
var timeoutID = window.setTimeout(function () {
var $promise = $.ajax({
method: 'POST',
url: 'https://www.somedomain.com/cms/wp-admin/admin-ajax.php',
data: {
action: 'get_cache_guide',
symbol_id: 6533,
_wpnonce: 'b0ce23fbe8'
}
});
$promise.always(function (data) {
Chart_Guide({charts: {guide: JSON.parse(data)}});
});
}, 500);
});
}(jQuery));
</script>
それで、私の質問は、Chart_Guide関数を使用して表示されるテーブルとグラフに基づいて、このデータ(JSON)を取得する方法です?
私は次のことを試しました(上記のスクリプト要素のテキストを解析しています):
method <- strsplit(strsplit(script, "method: '")[[1]][2], "',\n")[[1]][1]
urlOfInterest <- strsplit(strsplit(script, "url: '")[[1]][2], "',\n")[[1]][1]
action <- strsplit(strsplit(script, "action: '")[[1]][2], "',\n")[[1]][1]
symbolID <- as.numeric(strsplit(strsplit(script, "symbol_id: ")[[1]][2], ",\n")[[1]][1])
wpnonce <- strsplit(strsplit(script, "_wpnonce: '")[[1]][2], "'\n")[[1]][1]
data <- strsplit(strsplit(script, "data: ")[[1]][2], "});")[[1]][1]
data <- gsub("\\\n", "", data)
次に、次の方法で rvest と httr を使用しました。
pageSession <- request_POST(pageSession, url=urlOfInterest, body=data)
それから私は試しました:
values <- list("action"=action, "symbol_id"=symbolID, "_wpnonce"=wpnonce)
pageSession <- request_POST_1(pageSession, url=urlOfInterest, body=values)
そしてそれはすべて失敗します...
このタスクを達成する方法についての提案は高く評価されます。