Я хочу удалить некоторые "профессиональные" данные билборда, для доступа к которым требуется премиум аккаунт билборда. У меня уже есть один, но, очевидно, мне нужно войти на сайт билборда через R, чтобы иметь возможность удалить эти данные.
У меня нет проблем с такими вещами с обычными страницами входа (например, stackoverflow):
##### Stackoverflow login #####
# Packages installation and loading ---------------------------------------
if (!require("pacman")) install.packages("pacman")
pacman::p_load(rvest,dplyr,tidyr)
packages<-c("rvest","dplyr","tidyr")
lapply(packages, require, character.only = TRUE)
#Address of the login webpage
login_test<-"https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2f"
#create a web session with the desired login address
pgsession_test<-html_session(login_test)
pgform_test<-html_form(pgsession_test)[[2]] #in this case the submit is the 2nd form
filled_form_test<-set_values(pgform_test, email="myemail", password="mypassword")
filled_form_test$fields[[5]]$type <- "button"
submit_form(pgsession_test, filled_form_test)
Проблема с веб-сайтом рекламного щита заключается в том, что вход в систему осуществляется с помощью нажимаемой кнопки «зарегистрироваться» в заголовке страницы, которая вызывает всплывающее окно, позволяющее ввести адрес электронной почты и пароль, что позволяет пользователю войти в систему.
До сих пор я пытался угадать, где находится форма входа в систему на выводе html страницы рекламного щита, поскольку это не очевидно, но я даже не думаю, он действительно появляется, и я думаю, что для извлечения кода html из всплывающего окна windows может потребоваться определенный c процесс.
Вот что я сделал до сих пор:
##### Billboard scraping #####
# Packages installation and loading ---------------------------------------
if (!require("pacman")) install.packages("pacman")
pacman::p_load(rvest,dplyr,tidyr)
packages<-c("rvest","dplyr","tidyr")
lapply(packages, require, character.only = TRUE)
# Session setup (required to scrap restricted access web pages) -----------
login<-"https://www.billboard.com/myaccount"
#create a web session with the desired login address
pgsession<-html_session(login)
pgform<-html_form(pgsession)[[2]]
pgform$fields[[2]]$value <- 'myemailaddress'
pgform$fields[[1]]$value <- 'mypassword'
filled_form<-set_values(pgform)
fake_submit_button <- list(name = NULL,
type = "submit",
value = NULL,
checked = NULL,
disabled = NULL,
readonly = NULL,
required = FALSE)
attr(fake_submit_button, "class") <- "input"
filled_form[["fields"]][["submit"]] <- fake_submit_button
# filled_form$fields[[3]]$type <- "button"
submit_form(pgsession, filled_form)
Возвращаемая ошибка:
Предупреждающее сообщение: В request_GET (сеанс, url = url, query = request $ values, ...): не найдено (HTTP 404).
Что я понимаю просто как результат Это означает, что я не использую правильную форму входа, и я подозреваю, что она не будет доступна в моем выводе html (указанному pgform <-html_form (pgsession) [[2]] </em> в приведенном выше коде).
Обратите внимание, что я также пытался использовать pgform <-html_form (pgsession) [[1]] </em>.
Заранее благодарю за помощь.