Я пытаюсь собрать данные с интерактивной карты (ищу данные о преступности для округа). Я использую R (rvest) и пытаюсь использовать фантом js тоже. Я новичок в веб-очистке, поэтому я не совсем понимаю, как все элементы работают вместе (пытаясь добраться туда).
Проблема, которую я считаю, заключается в том, что после запуска фантома js и загрузив html с помощью пакета Rvest R, я получаю больше сценариев и нет четких данных в html. Мой код ниже.
writeLines("var url = 'http://www.google.com';
var page = new WebPage();
var fs = require('fs');
page.open(url, function (status) {
just_wait();
});
function just_wait() {
setTimeout(function() {
fs.write('cool.html', page.content, 'w');
phantom.exit();
}, 2500);
}
", con = "scrape.js")
Функция, которая берет URL, который я хочу очистить
s_scrape <- function(url = "https://gis.adacounty.id.gov/apps/crimemapper/",
js_path = "scrape.js",
phantompath = "/Users/alihoop/Documents/phantomjs/bin/phantomjs"){
# this section will replace the url in scrape.js to whatever you want
lines <- readLines(js_path)
lines[1] <- paste0("var url ='", url ,"';")
writeLines(lines, js_path)
command = paste(phantompath, js_path, sep = " ")
system(command)
}
Выполните функцию js_scrape () и получите файл html, сохраненный как "круто. html"
js_scrape()
Где я не понимаю, что делать дальше, это следующий код R:
map_data <- read_html('cool.html') %>%
html_nodes('script')
Вывод, который я получаю в HTML через фантом js снова просто сценарии. Нужна помощь в том, как действовать, когда сталкиваешься (с моей точки зрения) javascript вложено в javascript сценариев (?)
Спасибо!