【发布时间】:2018-02-15 21:39:48
【问题描述】:
首先,我想花点时间感谢 SO 社区, 过去你帮助了我很多次,我什至不需要创建一个帐户。
我目前的问题涉及使用 R 进行网络抓取。不是我的强项。
我想废弃http://www.cbs.dtu.dk/services/SignalP/
我尝试过的:
library(rvest)
url <- "http://www.cbs.dtu.dk/services/SignalP/"
seq <- "MTSKTCLVFFFSSLILTNFALAQDRAPHGLAYETPVAFSPSAFDFFHTQPENPDPTFNPCSESGCSPLPVAAKVQGASAKAQESDIVSISTGTRSGIEEHGVVGIIFGLAFAVMM"
session <- rvest::html_session(url)
form <- rvest::html_form(session)[[2]]
form <- rvest::set_values(form, `SEQPASTE` = seq)
form_res_cbs <- rvest::submit_form(session, form)
#rvest prints out:
Submitting with 'trunc'
rvest::html_text(rvest::html_nodes(form_res_cbs, "head"))
#ouput:
"Configuration error"
rvest::html_text(rvest::html_nodes(form_res_cbs, "body"))
#ouput:
"Exception:WebfaceConfigErrorPackage:Webface::service : 358Message:Unhandled #parameter 'NULL' in form "
我不确定什么是未处理的参数。 是提交按钮的问题吗?我似乎无法强迫:
form_res_cbs <- rvest::submit_form(session, form, submit = "submit")
#rvest prints out
Error: Unknown submission name 'submit'.
Possible values: trunc
submit$name 是 NULL 的问题吗?
form[["fields"]][[23]]
我尝试按照此处的建议定义虚假提交按钮: Submit form with no submit button in rvest
没有运气。
我对使用 rvest 或 RCurl/httr 的解决方案持开放态度,我想避免使用 RSelenium
编辑:感谢 hrbrmstr 很棒的回答,我能够为这项任务构建一个函数。它在包 ragp 中可用:https://github.com/missuse/ragp
【问题讨论】:
标签: r post web-scraping rvest rcurl