等待页面使用urllib2加载资源

2024-04-20 02:23:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图访问snowdaypredictor.com以获得学校项目的下雪机会,该网站不会自动显示雪天的机会,因为它必须加载。我试过下面的代码,但是没有用。在读取一个URL的数据之前还有什么要等待的吗?在

import urllib2
import time

url = 'http://snowdaypredictor.com%20%22SnowdayPredictor.com'
data = urllib2.urlopen(url)
time.sleep(10)
data = data.read()

Tags: 数据项目代码importcomhttpurldata
1条回答
网友
1楼 · 发布于 2024-04-20 02:23:11

你想要的数据实际上并不在你认为的网址上。页面向另一个URL发出一个后续的请求,该URL返回关于降雪量和降雪日百分比的数据,然后第一个页面中的一个脚本使用该数据执行一个漂亮的小计数动画。这实际上使您非常容易获得数据;下面是一个示例:

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

编辑:

所以我在python中尝试了一下,由于某种原因,它给了我一个SSL错误。通过使用verify=False标志,您可以使用requests而不是urllib2(需要pip install它)来实现。下面是一些示例代码,它获取了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

相关问题 更多 >