2013-08-05 21 views
0

CakePHP的代碼,我有一個CakePHP的網站,以及被路由到http://example.com/mycontroller/myfunction的Python的urllib2的urlopen不運行在URL

我想創建,我可以在cron作業運行一個python腳本的特定功能將定期調用此函數。我的python腳本如下所示:

import urllib2 

urllib2.urlopen("http://example.com/mycontroller/myfunction") 

該腳本運行,但函數未被調用;也就是說,結果與我在瀏覽器中訪問該URL時的結果不一樣。

我怎麼能模仿相同的動作訪問URL在瀏覽器中,從這個python腳本?

另外,有上運行有規律的間隔這一特定PHP函數另一個明顯的方式?

回答

0

如果你沒有爲你的頁面做任何奇特的事情(例如,依賴於客戶端JavaScript或其他瀏覽器行爲),你可能最好使用爲此目的而創建的實用工具(即curl或wget )而不是編寫自定義腳本。

例如,你可以直接在你的crontab使用以下命令:

curl -silent http://example.com/mycontroller/myfunction 

如果你是真正的依賴發出請求酷似一個瀏覽器(獲取鏈接圖片,腳本和樣式表和執行JavaScript ),你可能需要使用的工具,像Selenium

+0

謝謝!愚蠢的我。我意識到,之所以它不工作,因爲CakePHP的驗證 - 我需要登錄。目前試圖弄清楚。 – dcarr622

+0

@ chambo622也就是說棘手。過去,我使用Mechanize模塊來管理多請求流程(例如點擊登錄頁面,然後訪問受控資源),我已經取得了成功。你可以在這裏找到一些信息:http://www.pythonforbeginners.com/cheatsheet/python-mechanize-cheat-sheet/ –

+0

非常感謝,機械化做到了!非常有用的工具。 – dcarr622

相關問題