所以,现在的情况如下:
我想自动完成第2步 - 我想我已经接近了,我只是无法让它发挥作用。这是一些示例代码:
library(xml2)
library(rvest)
textString <- "C2-Boulder1 37.79927 -119.21545 3408.2 std 3.5 2.78 0.98934 0.0001 2012 ; C2-Boulder1 Be-10 quartz 581428 7934 07KNSTD ;"
url <- "http://hess.ess.washington.edu/math/v3/v3_age_in.html"
balcoForm <- html_form(read_html(url))[[1]]
set_values(balcoForm, summary = "no", text_block = textString)
balcoResults <- submit_form(html_session(url), balcoForm, submit = "text_block")
balcoResults
代码运行,每次我完成它&#34; balcoResults&#34;回复&#34;状态:200&#34;。成功! EXCEPT 文件大小为0 ...
我不知道问题出在哪里,但我最好的猜测是文本块在提交表单之前没有填写。如果我去网站(http://hess.ess.washington.edu/math/v3/v3_age_in.html)并手动提交一个空表格,它会产生一个空白网页:纯白色,没有任何内容。
这个潜在解释(以及我修复代码)的问题在于,我不知道为什么不填写文本块 。 set_values的结果告诉我&#34; text_block&#34;有120个字符。这是textString的正确长度。我不知道为什么这120个字符不会被粘贴到网络表单中。
另一种可能性是R没有等待足够长的时间来从网站获得响应,但这似乎不太可能,因为单个样本(如此处)快速运行并且响应的状态代码是 200。
昨天我参加了DataCamp课程&#34;在R中使用Web数据&#34;我已经从httr包中探索过GET和POST,但是我不知道如何拆开GET响应来修改表单然后让POST提交它。我考虑过试用RSelenium软件包,但根据我所读过的内容,我必须下载并安装一个&#34; Selenium Server&#34;。这吓倒了我,但我可能会这样做 - 如果我确信RSelenium会解决我的问题。当我在RSAN上查看RSelenium软件包中的函数名称时,不清楚哪些对我有帮助。如果不了解RSelenium如何解决我的问题,或者即使它会解决问题,那么这似乎是对所需投资时间的不良回报。 (但如果你们告诉我这是要走的路,以及使用哪些功能,我很乐意去做。)
我已经探索了SO以获得修复,但我发现的帖子都没有帮助。我查看了here,here和here,列出了三个。
有什么建议吗?
答案 0 :(得分:0)
经过两天的思考,我发现了问题。我没有将set_value函数的结果赋给变量(如果这是正确的R术语)。
以下是更正后的代码:
<ribbon>
<tabs>
<tab idMso="TabMail" OR "TabCalendar">
<button id="ID1" label="XxX" onAction="OnTextButton" image="myImg1" size="large" getVisible="GetVisible"/>
<button id="ID2" label="XxX" onAction="OnTextButton" image="myImg2" size="large" getVisible="GetVisible"/>
...
</tab>
</tabs>
</ribon>