2013-03-27 41 views
1

我正在嘗試從網頁讀取評分表。爲了爲我們的團隊創建一些統計數據,我想自動將結果保存在我自己的數據庫中。例如。 http://fvbw.sm-u.de/index.php?seite=game&game=568抓取內容奇怪的安全網頁

我試圖通過PHP中的幾個選項(curl,file,file_get_contents等)獲取頁面的內容,但我總是想出一個奇怪的行爲。在瀏覽器中查看時,實際得分顯示在<div id="inhalt"></div>容器中。但是當我通過PHP獲取頁面時,容器總是空的。

我的第一個想法是,內容通過JS重新加載。但是我找不到任何JS調用! Firebug也沒有跟蹤這種活動。也沒有使用CSS屬性內容或其他任何東西。

有人能告訴我那裏發生了什麼嗎?以及我如何能夠通過PHP獲取該頁面的內容?

更新(2013年3月27日12:05):

這裏是我的代碼,使用相同的標題爲Firefox瀏覽器的請求。這將返回相同的不完整結果。

$curl = curl_init(); 
$header[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"; 
$header[] = "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3"; 
$header[] = "Accept-Encoding: deflate"; 
$header[] = "Referer: http://fvbw.sm-u.de/index.php?seite=table&table=15"; 
$header[] = "Connection: keep-alive"; 
$header[] = "Cache-Control: max-age=0"; 
$header[] = "Host: fvbw.sm-u.de"; 

curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 

$data = curl_exe($curl); 

還有一件奇怪的事情發生了。當使用HttpRequester(Firefox Addon)時,我只需輸入url並執行請求,它就會得到正確的結果。原始請求看起來像這樣

GET http://fvbw.sm-u.de/index.php?seite=game&game=571 

沒有標題,沒有任何內容。如果我用curl來做這個,我仍然會得到不完整的頁面。

+0

確保單個HTTP請求使用瀏覽器的開發工具返回想要的內容。然後用'curl'(頭文件,內容,所有東西)編寫完全與HTTP請求重複的代碼。 – Jon 2013-03-27 09:16:56

+0

你能告訴我們你在哪裏設置捲曲參數的PHP代碼? – 2013-03-27 10:23:48

回答

0

不知道這個問題是否是最新的。我可以正常使用內容:

echo file_get_contents('http://fvbw.sm-u.de/index.php?seite=game&game=568'); 
+0

是的,這實際上是爲上面的頁面工作。另外使用流上下文甚至讓我通過cookie來訪問受密碼保護的頁面。 – signpainter 2013-08-08 10:16:11