R getURL()返回空字符串

时间:2014-08-22 17:51:54

标签: r web-scraping

对标题感到抱歉,但我无法想出如何说出这个标题。

我正在尝试抓取网页进行研究 - 他们最终将接受一系列语言测试。

与此同时......

    require(RCurl)
    url1 <- "http://www.coindesk.com/bitinstants-charlie-shrem-sees-bitcoin-battles-ahead"  
    url2 <- "http://www.coindesk.com/terms-conditions/"

    html <- getURL(url1)   # read in page contents
    html
    [1] ""

    html <- getURL(url2)   # read in page contents
    html
    [1] "<!DOCTYPE html>\r\n<!--[if lt IE 7]> <html class=\"no-js ie ie6 oldie\" lang=\"en\"> <![endif]-->\r\n<!--[if IE 7]>    <html class=\"no-js ie ie7 oldie\" lang=\"en\"> <![endif]-->\r\n<!--[if IE 8]>......."

因此,给定两个URL,每个URL用于同一网站上的不同页面 - url1的请求返回一个空字符串。但url2工作得很好。

我尝试过添加浏览器代理;

html <- getURL(url1, .opts=list(useragent="Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"))   # read in page contents

但这没什么区别,仍然是一个空字符串。

我只是在学习R的第二天,现在我被踩了!

任何人都可以提出发生这种情况的原因或解决方案,

2 个答案:

答案 0 :(得分:3)

要使其与RCurl一起使用,您需要使用

getURL(url1, .opts=curlOptions(followlocation = TRUE))

我希望我能告诉你原因。在查看Chrome中的请求时,我没有看到任何重定向,但也许我错过了一些东西。

请注意,您也可以使用httr

library(httr)
GET(url1)

答案 1 :(得分:0)

我不完全确定为什么 getURL没有处理该内容,但来自包htmlParse的{​​{1}}似乎可以获得内容。

试试这个:

XML