Заполнение гугл-формы из R

Я хотел бы использовать R для заполнения следующей (демонстрационной) формы:

https://docs.google.com/forms/d/1daaGo7XZaaGGPvTOconG8QZItqaLeIZmSpPPcgxTJvg/viewform

Любые предложения о том, как это можно сделать?

Спасибо!


person Tal Galili    schedule 14.06.2013    source источник
comment
Основная проблема заключается в том, что формы Google используют странные поля идентификатора для записей формы. Вы должны иметь возможность использовать rcurl для публикации после того, как разберетесь с идентификаторами.   -  person Thomas    schedule 15.06.2013
comment
Привет, Томас, учитывая, что мы знаем URL-адрес, можете ли вы предложить код, который выполняет отправку некоторых ответов?   -  person Tal Galili    schedule 15.06.2013
comment
Ответ Spacedman в значительной степени соответствует тому, что я бы предложил. Невозможно узнать значения имени без ручного просмотра источника для каждой формы.   -  person Thomas    schedule 15.06.2013


Ответы (1)


Контур:

Шаг 1: очистите элемент FORM с веб-страницы, используя стандартные методы очистки веб-страниц R, и найдите атрибут name всех виджетов формы, которые вы хотите заполнить. Например:

<input type="radio" name="entry.1945263135" value="Option 1" id="group_1945263135_1" class="ss-q-radio" aria-label="Option 1">

дает вам имя переключателя варианта 1 из вопроса 1.

Шаг 2: получите адрес POST, очистив атрибуты элемента FORM.

Шаг 3: Используйте RCurl:postForm для отправки формы, создав параметр .params для сопоставления значений с именами виджетов. Для этого см. документацию RCurl. Точные значения для каждого параметра зависят от виджета (флажок, радио, текст и т. д.), поэтому я не буду здесь вдаваться в подробности.

Хитрость заключается в том, пытаетесь ли вы сделать это общим для любой формы Google, или если это единичный случай, и вы счастливы закодировать атрибуты name в свой код. На самом деле, если вы хотите, чтобы это работало только для одной формы, вы можете просто просмотреть исходный код страницы и жестко закодировать все имена и POST адреса в свой код без необходимости очистки. Тогда это просто вопрос построения .params для postForm, и если это проблема, то я предлагаю вам прочитать документы, попробовать что-то, а затем задать более конкретные вопросы, когда вы потерпите неудачу.

person Spacedman    schedule 15.06.2013
comment
Спасибо, Барри, я покопаюсь в этом позже :) - person Tal Galili; 16.06.2013