Skip to main content
 首页 » 编程设计

python之从网站抓取数据到 Pandas 数据框

2025年05月04日15grandyang

我正在尝试从气象局网站上抓取天气数据,但我一直收到错误。

这是我目前的尝试

stats = ['Tmax', 'Tmin', 'Rainfall'] 
regions = ['England', 'Wales', 'Scotland'] 
base_url = r'https://www.metoffice.gov.uk/pub/data/weather/uk/climate/datasets/{}/date/{}.txt' 
dframes = [] 
 
for r in regions: 
    for s in stats: 
        url = base_url.format(s,r) 
        df = pd.read_table(requests.get(url).content) 
        dframes.append(df) 

我遇到了一个错误:

"OSError: Expected file path name or file-like object, got <class 'bytes'> type" 

请您参考如下方法:

您必须通过流使用该字节,例如 io.BytesIO:

import pandas as pd 
import requests 
import io 
 
stats = ['Tmax', 'Tmin', 'Rainfall'] 
regions = ['England', 'Wales', 'Scotland'] 
base_url = r'https://www.metoffice.gov.uk/pub/data/weather/uk/climate/datasets/{}/date/{}.txt' 
dframes = [] 
 
for r in regions: 
    for s in stats: 
        url = base_url.format(s,r) 
        df = pd.read_table(io.BytesIO(requests.get(url).content)) 
        dframes.append(df) 
print(dframes)