2016-12-16 52 views
0

我正在嘗試訪問snowdaypredictor.com以獲得學校項目的下雪天數,該網站不會自動顯示下載日期的機會,因爲它必須加載。我已經嘗試了下面的代碼,但它沒有奏效。無論如何要在閱讀URL的數據之前等待?等待頁面使用urllib2加載資源

import urllib2 
import time 

url = 'Roblox url' 
data = urllib2.urlopen(url) 
time.sleep(10) 
data = data.read() 
+0

這不是閱讀頁面之前等待一些時間問題的價值是隱藏在頁面的某個地方,並在頁面加載完成後使用javascript加載後,我正在嘗試查看是否可以找出值的位置,如果我願意,我會讓你知道:) –

回答

0

你想要的數據實際上不在你認爲它的URL。該頁面向其他網址發送後續請求返回有關降雪和下雪天百分比的數據的另一個URL,然後第一頁中的腳本使用該數據對數據進行動畫計數。這實際上使得您獲取數據非常容易;這裏有一個例子:

https://api.snowdaypredictor.com/query/80424

編輯:

所以我只是嘗試這樣做在Python中,由於某種原因這是給我的SSL錯誤。您可以使用requests而不是urllib2(您將需要pip install它)通過使用verify = False標誌來獲取。以下是一些示例代碼,可以獲取Breckenridge,CO的百分比並打印它。您可以放心地忽略警告(似乎snowdaypredictor沒有配置它的SSL證書正確:

>>> import requests 
>>> requests.get('https://api.snowdaypredictor.com/query/80424', verify=False).json()['percent'] 
/usr/local/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:838: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/security.html 
    InsecureRequestWarning) 
14 
+0

非常感謝! Upvoted,但我沒有代表它公開顯示。 –