2012-11-30 66 views
0

讓我開始說我對PHP幾乎一無所知,但是,我認爲這可能證明是我嘗試做的最好的方法。我想從外部頁面獲取變量的值,以便我可以對其進行處理,以便在頁面上創建圖形和統計信息。我試圖從(需要Facebook帳戶)獲取變量的示例頁面是 - http://superherocity.klicknation.com/game/pages/battle_replay.php?battle=857337182從外部網頁抓取變量值進行處理?

變量名稱是fvars,它包含有關2名玩家用於攻擊的數據,他們做了多少傷害,等等。最終,我想提供一個頁面,其中一個玩家可以去插入他們的重播鏈接(如上圖),並獲得一個很好的整潔細節的戰鬥。

至少,如果有人能夠向我解釋如何在表單提交之後回顯fvars的值,並以重播url作爲輸入,它將非常有用!我試着在這裏查看一些PHP引用和其他帖子,但迄今爲止已丟失。 :(

謝謝你的任何幫助或指導

+0

就在下面,我想通是行不通的 '' –

+0

不幸的是,只需獲取該頁面的內容,而不需要任何驗證Cookie。不確定cookie是否可以工作,但您可以嘗試bash wget評論。它允許你通過cookie。然後,你需要真正解析頁面。該變量不會通過file_get_contents或wget自動設置。 – jchapa

+0

此頁面如何工作 - http://www.shc-strategy.com/?這正是我想要做的。 :( –

回答

1

您可以得到任何網頁的內容,像這樣:

$homepage = file_get_contents('http://www.example.com/'); 
echo $homepage; 

,然後只用正則表達式或基本搜索找到你需要的變量在$首頁。問題是,你需要通過Facebook登錄。我知道目前沒有辦法做到這一動態與PHP。 邁克

編輯:發現一個SO問題,解決這個確切問題 - Scraping from a website that requires a login?

+0

登錄件是不需要的,因爲只有使用頁面的用戶已經登錄了,所以如果我使用上面的命令將整個頁面內容讀入變量$ homepage,那麼我可以引用包含的變量例如,如果我按照上面的命令使用echo fvars,它會輸出fvars的值嗎? –

+0

如果用戶在本地瀏覽器上作爲客戶端登錄,則無關緊要。PHP代碼正在運行在你的web服務器的後端,這個PHP代碼是需要登錄才能獲取變量的,在上面提供的鏈接中,有些人給出了一些選擇,或者你嘗試了Oli的想法,這是我不熟悉的。 – dmikester1

+0

另一位玩家已經制作了一個類似的頁面,我想要做什麼 - http://www.shc-strategy.com/ - 玩家可以插入重播鏈接。只要你有一個Facebook帳戶和一個遊戲帳戶(它使用Facebook連接),那麼你可以訪問重播網址。另一位玩家沒有選擇與所有人一起分享他的網頁。無論您是否喜歡他,我都希望能夠爲所有人提供類似的資源。 –

2

你可以採取的一種方法是使用Selenium。您需要設置硒服務器和瀏覽器,然後編寫一個硒腳本來爲您提供頁面。這裏的關鍵點是,硒可以通過編程方式通過selenium以編程方式運行帶有javascripts,facebook登錄等的firefox客戶端,以及您在普通Firefox上的所有內容。

我在Linux環境中運行selenium並通過php cli腳本控制它。我運行java selenium-server-standalone以及framebuffered X和firefox。 PHP單元測試庫allready有一個擴展,儘管你明顯不需要它。