Добавить имя в set_values ​​с помощью Rvest

Я пытаюсь очистить веб-сайт это, я написал код для входа в систему с помощью 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 - это имя поля ввода, которое изменяется при каждом обновлении.

прямо сейчас я меняю поле имени каждый раз, когда запускаю скрипт

Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
0
68
1

Ответы 1

Надеюсь, этого достаточно, чтобы направить вас в правильном направлении:

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

Спасибо, сэр, но я не могу объединить ваш код с моим. Я получаю неизвестную ошибку поля, потому что мне нужно установить такие значения, как этот formfill <- set_values(inputs, df$name[1] = "****", df$name[2] = "****"), и я думаю, что это неверно, потому что вы не можете поместить переменную вместо аргумента по умолчанию. Подскажите, пожалуйста, как мне совместить ваш код с моим ...

geekzeus 01.11.2018 09:36

Я бы посоветовал не полагаться на rvest и изучить, как использовать httr::GET() и httr::POST() для более идиоматической публикации форм и инструментовки веб-приложений.

hrbrmstr 01.11.2018 13:46

Другие вопросы по теме