將多個請求自動化到網頁搜索表單我試圖學習如何使用RCurl(或者其他合適的R包,如果我錯誤地將RCurl作爲正確的工具)來自動執行提交過程將術語搜索到Web表單並將搜索結果放入數據文件中。我正在處理的具體問題如下:如何使用R
我有一個數據文件給幾輛汽車的車牌號碼(LPN)和車輛識別號碼(VIN)。加利福尼亞州汽車部門(DMV)有一個網頁搜索表格,您可以在此輸入LPN和VIN的最後五位數字,並返回2010年或2009年的車輛牌照費(VLF)付款(有一個選擇器在輸入表單上也是如此)。 (供參考:這是一個研究項目,瞭解VLF支付按車型,型號和車型年份分配)
我可以通過手動輸入每輛車的數據,然後手動輸入結果到電子表格中。但這是21世紀,我想嘗試使這個過程自動化。我想編寫一個腳本,將每個LPN和VIN提交給DMV Web窗體,然後將結果(VLF支付)放入我的數據文件中的一個新的VLF變量中,重複執行此操作直至到達列表的末尾LPN和VINs。 (DMV web表單在這裏順便提一下: 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或其他語言)?對網站,書籍,listservs,其他StackOverflow問題等的具體建議會很好。
感謝您的幫助。
快速提示:爲firefox安裝firebug並使用網絡選項卡查看發佈的表單實際上是通過網線發送的。 – Spacedman 2011-03-22 19:37:48
該頁面給我一個錯誤消息,上面的代碼。但提示:檢查通過'http://www.dmv.ca.gov/wasapp/FeeCalculatorWeb/vlfFees.do方法= calculateVlf&提交=確定%20VLF&vehicleLicense = 5CWR968&vehicleTaxYear = 2010&vehicleVin = 11802' – daroczig 2011-03-22 23:52:37
@daroczig謝謝!爲了將來的參考,一個人怎麼看出來?另外,如果我使用您提供的url和getURL(url),它將返回給出我想要輸出的頁面的html。你能否提出一個關於如何使用R從html混亂中選擇所需文本(在這種情況下,支付金額的值)的好教程(是的,我確實是全新的)? – eipi10 2011-03-23 17:13:18