我正在尝试使用RCurl抓取移动格式的网页,位于以下网址:
http://m.fire.tas.gov.au/?pageId=incidentDetails&closed_incident_no=161685
使用此代码:
library(RCurl)
options( RCurlOptions = list(verbose = TRUE, useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13"))
inurl <- getURL(http://m.fire.tas.gov.au/?pageId=incidentDetails&closed_incident_no=161685)
请注意,我尝试将用户代理设置为Chrome浏览器 - 无论是否执行此操作,我得到的结果都相同。当我在Chrome中查看网址时,日期的格式如下,并带有时间戳:
HTML源代码匹配:
Last Updated: 24-Aug-2009 11:36<br>
First Reported: 24-Aug-2009 11:24<br>
但在R中,在我从URL中检索数据后,日期的格式如下:
Last Updated: 2009-08-24<br>
First Reported: 2009-08-24<br>
有什么想法在这里发生了什么?我认为服务器正在响应浏览器/ Curl的用户代理或区域或语言或类似的东西,并返回不同的数据,但无法弄清楚我需要在RCurl的选项中设置什么来更改它。
答案 0 :(得分:0)
看起来服务器期待'Accept-Language'标题:
library(RCurl)
getURL("http://m.fire.tas.gov.au/?pageId=incidentDetails&closed_incident_no=161685",
httpheader = c("Accept-Language" = "en-US,en;q=0.5"))
适合我(返回First Reported: 24-Aug-2009 11:24<br>
等)。我通过使用HttpFox Firefox插件发现了这一点。