2013-01-03 60 views
4

我試圖刮使用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瀏覽的網址,日期問世此格式,帶有時間戳以及:

Screenshot of text on web page

和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

我能推薦的唯一想法是找出chrome發送哪個頭(通過檢查調試工具中的網絡標籤),然後系統地複製,直到在R和瀏覽器中得到相同的結果。 – hadley

+0

Referer是一個相當常見的網站頭部檢查,但我嘗試設置,它並沒有幫助。 – hadley

+0

@hadley我可能已經犯了一個初學者的錯誤,但我嘗試使用檢查元素>網絡框下顯示的所有請求標題。即使所有的add_headers()匹配chrome,它都不起作用。 :/這是一個奇怪的網站..如果你改變了closed_incident_no的值,它會跳轉btw這兩種格式 –

回答

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插件發現了這一點。