我有this one之类的链接,我希望使用RCurl
从中提取数据,之前有一个免责声明页面,我需要在浏览器中点击它才能评估数据。以前我使用下面的脚本(从here到“绕过”免责声明页面并使用RCurl
访问数据:
pagesource <- getURL(url,.opts=curlOptions(followlocation=TRUE,cookiefile="nosuchfile"))
doc <- htmlParse(pagesource)
之前有效,但最近几天没有长期工作。实际上我对它所做的代码不太了解,我想知道我是否必须在curlOptions
中更改某些内容,或者重新编写整段代码?
感谢。
答案 0 :(得分:1)
正如我在评论中提到的,问题的解决方案将完全取决于“免责声明页面”的实施。看起来前面的解决方案使用了更详细定义的here cURL选项。基本上,它指示cURL做的是提供一个假的cookie文件(名为“nosuchfile”),然后按照你试图访问的网站给出的标题重定向。显然,该网站设置的方式是,如果访问者声称没有正确的cookie,那么它会立即将访问者重定向到免责声明页面。
您没有在您的工作目录中创建名为“nosuchfile”的文件,是吗?如果没有,听起来像目标网站改变其免责声明页面的运作方式。如果是这种情况,除非我们有您尝试访问诊断的实际页面,否则我们无法提供任何帮助。
在您在问题中引用的示例中,他们使用Javascript移过免责声明,这可能很难过。
对于你提到的例子,但是......
您可以直接访问该网址,而无需亲自或通过cURL接受任何许可协议。
请注意,如果您已经接受了该协议,则此网站会存储一个cookie,说明需要删除该cookie才能返回到许可协议页面。您可以通过单击“资源”选项卡,然后转到“Cookies”并删除每个,然后刷新上面发布的URL来执行此操作。