rvest html_table出错

时间:2015-10-14 08:36:27

标签: r error-handling web-scraping html-table

我正试图从220个简单网站列表中删除单个表格。每个站点上都有一个表,我想抓取并放入一个字符向量,然后将所有220个字符向量转换为单个数据帧。

检查网页是否存在,200 = ok,404 =找不到页面。

UrlListCheck <- unlist ( lapply(lapply(url_list, html_session), function(x) {
    lapply(x$response$status_code, identity)
    } ))

所有220页都可以。

检查url格式以将每个html_table下载为字符向量

215 -> x ; html_table(html_session(url_list[[x]]))[[1]][,2]

[1] ""                 "field2"         ""                
[4] "field4" ""                 "field6"    
[7] "field7"

上述方法适用于我手动检查的所有网址。

html_session在url列表上的lapply工作正常。

test1 <- lapply(url_list, html_session)

但是html_table函数在列表上引发了lapply错误。

test2 <- lapply(test1, html_table)

Error in matrix(NA_character_, nrow = n, ncol = p): 
invalid 'ncol' value (too large or NA)

有什么建议吗?

以下代码的输出是我最终想要的,这对我在同一台服务器上具有相同格式的许多其他网页都有用。

TablesList <- lapply(url_list, function(x) {
                            html_table(html_session(x))[[1]][,2] } )

矩阵错误(NA_character_,nrow = n,ncol = p):     无效&#39; ncol&#39;值(太大或NA)*

ResultDF <- as.data.frame(do.call(rbind, TablesList))

0 个答案:

没有答案