Сохраните веб — страницу в виде HTML-файла с помощью rvest?

#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 не должен быть местом для рекомендаций по программному обеспечению