Я пытаюсь узнать, как использовать RCURL (или какой-либо другой подходящий R-пакет, если я ошибаюсь, когда RCURL является правильным инструментом), чтобы автоматизировать процесс отправки поисковых запросов в веб-форму и размещение результатов поиска в файл данных. Конкретная проблема, над которой я работаю, такова:
У меня есть файл данных с номером номерного знака (LPN) и идентификационным номером автомобиля (VIN) для нескольких автомобилей. Калифорнийский департамент автотранспортных средств (DMV) имеет форму поиска по веб-странице, в которой вы вводите LPN и последние пять цифр VIN, и он возвращает плату за лицензионный сбор за автомобиль (VLF) за 2010 или 2009 год (там есть селектор для что и на входной форме). (FYI: Это для исследовательского проекта, чтобы посмотреть на распределение платежей VLF по марке автомобиля, модели и модельному году)
Я мог бы пройти через утомительный процесс ручного ввода данных для каждого автомобиля, а затем вручную ввести результат в электронную таблицу. Но это 21-й век, и я хотел бы попытаться автоматизировать процесс. Я хочу написать script, который будет передавать каждый LPN и VIN в веб-форму DMV, а затем поместить результат (платеж VLF) в новую переменную VLF в файл данных, делая это повторно, пока не дойдет до конца список LPN и VIN. (Здесь, кстати, размещается веб-форма DMV: https://www.dmv.ca.gov/FeeCalculatorWeb/vlfForm.do).
Мой план состоял в том, чтобы использовать getHTMLFormDescription() (в пакете RHTMLForms), чтобы узнать имена полей ввода, а затем использовать getForm() или postForm() (в пакете RCurl) для получения вывода. К сожалению, я застрял на первом шаге. Здесь используется команда R и вывод:
> forms = getHTMLFormDescription("https://www.dmv.ca.gov/FeeCalculatorWeb/vlfForm.do")
Error in htmlParse(url, ...) :
File https://www.dmv.ca.gov/FeeCalculatorWeb/vlfForm.do does not exist
К сожалению, будучи относительно новым для R и почти полностью новым для HTTP и веб-соскабливания, я не уверен, что делать дальше.
Во-первых, кто-нибудь знает, почему я получаю сообщение об ошибке в моем вызове getHTMLFormDescription()? Альтернативно, есть ли другой способ определить имена полей ввода?
Во-вторых, можете ли вы предложить некоторый пример кода, который поможет мне начать работу с фактической отправкой LPN и VIN и извлечением вывода? Является ли метод getForm() или postForm() правильным, или я должен делать что-то еще? Если это поможет получить некоторые реальные комбинации LPN-VIN для отправки, вот три:
LPN VIN
5MXH018 30135
4TOL562 74735
5CWR968 11802
Наконец, поскольку вы можете видеть, что я полный новичок в этом, у вас есть предложения о том, что мне нужно, чтобы учиться, чтобы стать адептом в веб-соскабливании такого рода и как научиться его (в R или на другом языке)? Конкретные предложения для веб-сайтов, книг, списков рассылки, других вопросов StackOverflow и т.д. Были бы замечательными.
Спасибо за вашу помощь.