R - curl :: curl_fetch_memory(url,handle = handle)中的错误:使用错误/非法格式或URL丢失的URL

时间:2016-11-12 19:24:45

标签: r curl rvest

我有这个不会运行的功能。代码内部的命令在它自己应用时起作用,但是当我在这个lapply函数中运行它时会出错。我已经尝试更新我的Curl库等...不知道为什么会发生这种情况。

    library(curl)
    ##dataframe looks like this as factor list: x = "http://google.com" 
    funk <- function(x) {
            read_html(x) %>% html_node("title") %>% html_text 
    }
    df$titles<-lapply(df$urls,funk)

    Error: 'Error in curl::curl_fetch_memory(url, handle = handle) : 
    URL using bad/illegal format or missing URL
    ' does not exist in current working directory ('/Users/Home/').

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

该功能适用​​于lapply

df <- data.frame(urls=c("http://google.com", "http://ytcracker.com"), stringsAsFactors = F)
funk <- function(x) {
  read_html(x) %>% html_node("title") %>% html_text 
}

lapply(df$urls, funk)
[[1]]
[1] "Google"

[[2]]
[1] "ytOS/2014"
df$titles <- lapply(df$urls, funk)
df
                  urls    titles
1    http://google.com    Google
2 http://ytcracker.com ytOS/2014

所以问题必须在于问题的不可重现部分,这将是数据框(请{RES}中的dput()您的数据 - 请查看R标签说明以获取更多信息)。

具体来说,错误消息意味着问题可能就是您在该数据框中指定URL的方式。

更具体地说,当你收到错误说

' does not exist in current working directory ('/Users/Home/').

这几乎总意味着您没有使用http://https://等来验证域名。