对标题感到抱歉,但我无法想出如何说出这个标题。
我正在尝试抓取网页进行研究 - 他们最终将接受一系列语言测试。
与此同时......
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的第二天,现在我被踩了!
任何人都可以提出发生这种情况的原因或解决方案,
答案 0 :(得分:3)
要使其与RCurl一起使用,您需要使用
getURL(url1, .opts=curlOptions(followlocation = TRUE))
我希望我能告诉你原因。在查看Chrome中的请求时,我没有看到任何重定向,但也许我错过了一些东西。
请注意,您也可以使用httr
库
library(httr)
GET(url1)
答案 1 :(得分:0)
我不完全确定为什么 getURL
没有处理该内容,但来自包htmlParse
的{{1}}似乎可以获得内容。
试试这个:
XML