R:用rvest收获数据失败 - 因为"嵌套"形式?

时间:2014-12-02 14:23:15

标签: r html-form rvest

为了使用" R"提取内容,有一个新包装' rvest'来自哈德利威克姆。 它适用于简单的会话,例如获得铁路连接的时间表。但是当我尝试使用高级搜索时,它会失败:

url     <- "http://mobile.bahn.de/bin/mobil/query.exe/dox?country=DEU&rt=1&use_realtime_filter=1&webview=&searchMode=NORMAL"
sitzung <- html_session(url)
p1.form <- html_form(sitzung)[[1]]
p2      <- submit_form(sitzung, p1.form, submit='advancedProductMode')
p2.form <- html_form(p2)[[1]]
form.mod<- set_values( p2.form
                      ,REQ0JourneyStopsS0G     = "HH"
                      ,REQ0JourneyStopsZ0G     = "F"
                      )
final   <- submit_form(sitzung, form.mod, submit='start')

Error in vapply(elements, encode, character(1)) : 
  values must be length 1,
 but FUN(X[[18]]) result is length 0

同样的结果:

 submit_form(p2, form.mod, submit='start'9

有什么想法吗?它是成功的,如果我修改并发送表格&#39; p1.form&#39;。 第二种形式的内容:

<form> '<unnamed>' (POST http://mobile.bahn.de/bin/mobil/query.exe/dox?ld=96240&n=8&i=c6.05923240.1417523354&rt=1&use_realtime_filter=1&webview=&OK#focus)
  <input hidden> 'queryPageDisplayed': yes
  <input hidden> 'REQ0JourneyStopsS0A': 1
  <input text> 'REQ0JourneyStopsS0G':
  <input hidden> 'REQ0JourneyStopsS0ID':
  <input hidden> 'REQ0JourneyStopsZ0A': 1
  <input text> 'REQ0JourneyStopsZ0G':
  <input hidden> 'REQ0JourneyStopsZ0ID':
  <input text> 'REQ0JourneyDate': 02.12.14
  <input text> 'REQ0JourneyTime': 13:40
  <input radio> 'REQ0HafasSearchForw': 1
  <input radio> 'REQ0HafasSearchForw': 0
  <input hidden> 'existProductNahverkehr': yes
  <input checkbox> 'REQ0JourneyProduct_prod_list': 4:0001111111000000
  <input hidden> 'REQ0Tariff_TravellerType.1': E
  <input hidden> 'REQ0Tariff_TravellerReductionClass.1': 0
  <input image> 'start':
  <input hidden> 'REQ0Tariff_Class': 2
  <input submit> 'chgBC=y&getstop': Reiseprofil ändern
  <input submit> 'HWAI=QUERY!options=hide!&getstop': Suchoptionen ausblenden
  <input hidden> 'REQ0JourneyStops1.0A': 1
  <input text> 'REQ0JourneyStops1.0G':
  <input hidden> 'REQ0JourneyStops2.0A': 1
  <input text> 'REQ0JourneyStops2.0G':
  <input submit> 'chgProd=y&getstop': Verkehrsmittelwahl ändern
  <select> 'REQ0HafasChangeTime' [0/9]
  <input hidden> 'existOptimizePrice': 1
  <input checkbox> 'REQ0HafasOptimize1': 0:1
  <input checkbox> 'REQ0JourneyProduct_opt0': 1
  <input checkbox> 'REQ0JourneyProduct_opt3': 1
  <input hidden> 'existOptionBits': yes
  <input hidden> 'immediateAvail': ON
  <input submit> 'start': Suchen

0 个答案:

没有答案