我有兴趣使用R
和rvest
从Web of Knowledge抓取期刊标题。但是,我在提交正确的表格时遇到了问题。我对1960 - 1970年所有Econometrica文章的清单感兴趣。我使用当地大学图书馆的访问权限自动登录。
当我跑步时
library("rvest")
library("httr")
link = "http://isiknowledge.com/wos"
form = html_session(link) %>% html_form() # returns list of 6 forms
form[[4]] = set_values(form[[4]], # set values in form number 4
product = "WOS",
range = "ALL",
action = "search",
period = "Range Selection",
startYear = "1960",
endYear = "1970",
range = "ALL",
'value(select1)' = "SO",
'value(input1)' = "econometrica",
formUpdated = "TRUE")
submit_form(html_session(link), form = form)
我有两个问题:首先,它使用''
而不是“Econometrica”提交,其次,我收到以下错误消息:Error in if (!(submit %in% names(submits))) { : argument is of length zero
。
有一个Python替代here,但代码必须在R中。任何有关如何取得进展的帮助将非常感激。
答案 0 :(得分:1)
我在ISI页面上遇到了类似的问题,问题是他们至少有时会设计没有提交按钮的表单(提交是使用JavaScript处理的)。我检查了the link you posted,这个页面上的第四个表格似乎就是这种情况(虽然我不确定搜索图像是否用作提交按钮)。
如果这是问题所在,那么我对问题的回答是" Submit form with no submit button in rvest"可能会为您的案例提供解决方案。
简而言之,您可以在您的代码版本中注入提交按钮,然后提交。有关如何操作的详细信息,请参见链接帖子。