Я пытаюсь очистить веб-сайт это, я написал код для входа в систему с помощью rvest
, но каждый раз, когда страница обновляется, имя формы меняется.
library(rvest)
loginpage <- "https://demo.glpi-project.org/"
pagesession <- html_session(loginpage)
pageform <- html_form(pagesession)[[1]]
formfill <- set_values(pageform, fielda5bd99dcd2eaa8 = "****",
fieldb5bd99dcd2eaad = "****")
successlogin <- submit_form(pagesession,formfill)
fielda5bd99dcd2eaa8
и fieldb5bd99dcd2eaad
- это имя поля ввода, которое изменяется при каждом обновлении.
прямо сейчас я меняю поле имени каждый раз, когда запускаю скрипт
Надеюсь, этого достаточно, чтобы направить вас в правильном направлении:
library(rvest)
library(httr)
library(dplyr)
httr::GET(
"https://demo.glpi-project.org/"
) -> res
pg <- httr::content(res)
form <- html_nodes(pg, "form")
inputs <- html_nodes(form, "input")
data_frame(
id = html_attr(inputs, "id"),
name = html_attr(inputs, "name"),
value = html_attr(inputs, "value")
)
## # A tibble: 6 x 3
## id name value
## <chr> <chr> <chr>
## 1 login_name fielda5bd9bf41b7af9 NA
## 2 login_password fieldb5bd9bf41b7afe NA
## 3 NA auth local
## 4 login_remember fieldc5bd9bf41b7aff NA
## 5 NA submit Post
## 6 NA _glpi_csrf_token ea1aff0b53753e14a76077bd77fb21c2
Я бы посоветовал не полагаться на rvest
и изучить, как использовать httr::GET()
и httr::POST()
для более идиоматической публикации форм и инструментовки веб-приложений.
Спасибо, сэр, но я не могу объединить ваш код с моим. Я получаю неизвестную ошибку поля, потому что мне нужно установить такие значения, как этот
formfill <- set_values(inputs, df$name[1] = "****", df$name[2] = "****")
, и я думаю, что это неверно, потому что вы не можете поместить переменную вместо аргумента по умолчанию. Подскажите, пожалуйста, как мне совместить ваш код с моим ...