R - 仅当http状态响应为200

时间:2016-06-01 20:43:44

标签: r html-parsing packages

我有一个数据框urls,它只是我要抓取的网址列表,以获取源代码中定义的变量pageName。为此,我使用以下代码:

# Crawl Page Names
for(n in 1:length(urls$URL))
{
  if (domain(urls$URL[n])=="www.domain.com") {

  doc = readLines(con = file(as.character(urls$URL[n]), encoding = "UTF-8"))
  close(con)
  rowNumber = grep('s.pageName', doc)
  datalines = grep(pageNamePattern,doc[rowNumber],value=TRUE)
  gg = gregexpr(pageNamePattern,datalines)
  matches = mapply(getexpr,datalines,gg)
  matches = gsub(" ", "", matches[1], fixed = TRUE)
  result = gsub(pageNamePattern,'\\1',matches)
  names(result) = NULL
  urls$pageName[n] = stri_unescape_unicode(result[1])

  } else {

    urls$pageName[n] <- NA

  }
}

if (domain(urls$URL[n])=="www.domain.com")使用urltools包中包含的函数domain,让我抓取那些我知道定义了pageName变量的URL,这些URL是特定域中的。 / p>

但是,如果解析后的页面的http状态响应返回4XX客户端错误或5XX服务器错误,我的代码就会中断。

仅当con的http状态响应为200(OK)时,我想在代码中添加第二个if进行爬网。有人知道如何使用它或使用哪个包或功能吗?

0 个答案:

没有答案