2016-12-16 45 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,但我没有代表它公开显示。 –