#javascript #r #web-scraping #phantomjs #rvest
Вопрос:
Я занимаюсь веб-очисткой и столкнулся с некоторым контентом, который не отображается до загрузки страницы. Я смог получить доступ к нужному сайту с помощью PhantomJS, однако мне нужно войти в систему, прежде чем я смогу очистить необходимый мне контент. Я смог войти в систему с помощью сеанса rvest pgsession, но я не уверен, как объединить их, чтобы, когда я использую PhantomJS, я получал доступ к странице, на которую я вошел.
Я знаю, что мог бы использовать Селен, но я бы предпочел избежать этого, так как в прошлом я всегда боролся с этим.
Вот что я сейчас использую: Не уверен, смогу ли я объединить эти методы или есть альтернативный метод, который я должен рассмотреть?
Спасибо за любую помощь!
pgsession <- session(loginPage)
filled_form <- html_form_set(html_form(pgsession)[[1]],
email=myEmail,
password=myPassword)
session_submit(pgsession, filled_form, submit = NULL, config(referer = pgsession$url))
pgsession <- session_jump_to(pgsession, myURL)
scrape_js = function(url){
url_get <- paste0(url)
writeLines(paste0("// myContent.js
var webPage = require('webpage');
var page = webPage.create();
var fs = require('fs');
var path = 'myContent.html'
page.open('",url_get,"', function (status) {
just_wait();
});
function just_wait() {
setTimeout(function() {
var content = page.content;
fs.write(path,content,'w')
phantom.exit();
}, 2500);
};
"), con = paste0("myContent.js"))
system(paste("./phantomjs", paste0("myContent.js")))
read_html("myContent.html") %>%
return()
}
test_scrape <- scrape_js(myURL)
Комментарии:
1. Я лично нахожу Кукловода довольно эффективным. Однако Stackoverflow не должен быть местом для рекомендаций по программному обеспечению