使用R和rvest

时间:2016-07-22 13:49:19

标签: r web-scraping rvest

我有兴趣使用RrvestWeb 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中。任何有关如何取得进展的帮助将非常感激。

1 个答案:

答案 0 :(得分:1)

我在ISI页面上遇到了类似的问题,问题是他们至少有时会设计没有提交按钮的表单(提交是使用JavaScript处理的)。我检查了the link you posted,这个页面上的第四个表格似乎就是这种情况(虽然我不确定搜索图像是否用作提交按钮)。

如果这是问题所在,那么我对问题的回答是" Submit form with no submit button in rvest"可能会为您的案例提供解决方案。

简而言之,您可以在您的代码版本中注入提交按钮,然后提交。有关如何操作的详细信息,请参见链接帖子。