2015-11-27 41 views
0

我使用Python來拉取網站的HTML以獲取衛星位置。當然,因爲我實際上並不是通過瀏覽器訪問網站,所以我沒有檢索任何可以通過javascript調用填充的html。Python:在瀏覽器中通過JavaScript調用創建更新html的問題

import urllib.request 
page = urllib.request.urlopen('http://n2yo.com/?s=20217') 
file = open("textFile", "wb") 
satelliteText = page.read() 
file.write(satelliteText) 
file.close() 

我已經探索庫就像風車的字面運行瀏覽器,這樣你可以得到的JavaScript創建的HTML,但我使用的是樹莓派。我寧願不安裝額外的瀏覽器。

是否有反正我可以讓ajax自己調用網站正在製作和檢索我需要的數據?

回答

1

在這裏看這個源文件:http://www.n2yo.com/js/passes.js它看起來叫它http://www.n2yo.com/inc/all.php來獲取數據。仔細閱讀passes.js,你應該能夠弄清楚如何解析它。

+0

在passes.js中,除了'satid'之外,他們似乎通過調用twoline2satrec創建一個'satrec',然後將'satrec'扔進satellite.propagate,它返回衛星的位置和速度。我無法在開發工具中的任何源文件中找到它們調用的這些函數。他們有一個名爲satellite.min.js的文件,似乎其中有所有數學公式,但我無法將其與'propogate'或'twoline2satrec'關聯。我想這是有道理的,他們讓我們的瀏覽器做所有的數學工作,從服務器上卸載。 – dyllandry

+0

我真的很感謝你的幫助約旦。 我相信我在這方面有領先優勢,但並不多。如果您將satellite.min.js投入1508行的www.dirtymarkup.com,我認爲我感興趣的功能開始。由於他們所有的代碼似乎都被「縮小」,而且非常密集,所以很難解釋和遵循。儘管如此,我認爲1519-1559行的所有分解和解析都持有黃金。 – dyllandry

+1

你越來越近了。衛星來自satellite-js,可以在這裏找到:https://github.com/shashwatak/satellite-js。 github概括了事情,並且有源代碼(未縮小) –

相關問題