【发布时间】:2019-08-14 18:19:24
【问题描述】:
我需要处理来自这个网站 (https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.20190814/06/) 的天气数据,每个文件大约 300MB。下载文件后,我只需要读取其中的一个子集。我觉得下载会太慢,所以我打算用 BeautifulSoup 直接从网站读取数据,像这样
from bs4 import BeautifulSoup
import requests
url = 'https://www.ftp.ncep.noaa.gov/data/nccf/com/gfs/prod/gfs.20190814/06/gfs.t06z.pgrb2.0p25.f000'
response = requests.get(url)
soup = BeautifulSoup(response.content, features='lxml')
然后使用pygrib 库读取生成的 .grib(一种天气数据格式)文件的子集。
然而,这也被证明太慢了,每天需要完成 50 次的事情大约需要 5 分钟。有没有我没有想到的更快的替代方案?
【问题讨论】:
-
你想获取什么数据,如果问题是下载文件,你必须在 noaa api 中缩小搜索范围。如果你不能这样做,你可能会被下载大文件所困。或者以完全不同的方式抓取数据。
-
是的,信息是文件的一个子集,我可以使用 pygrib 命令解析该子集,但只有完整文件可用
-
数据是否存在于 noaa 站点的某个位置?你能直接从网站上废弃它,而不是使用完整的文件吗?例如。导航到旧金山的天气并找到他们在页面上显示的温度。这样您就不必下载文件。否则,您可以参考这个问题,并可能获取您想要的文件的特定字节,假设数据位置没有改变:stackoverflow.com/questions/1798879/…
标签: python beautifulsoup