【问题标题】:Scrape data from website to pandas dataframe从网站抓取数据到熊猫数据框
【发布时间】:2019-05-17 07:06:28
【问题描述】:

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

这是我迄今为止尝试过的

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"

【问题讨论】:

  • 请附上完整的错误信息。
  • 对不起,我会更新
  • 在代码的前面加上import pandas as pd这一行。
  • 我无法添加完整的错误信息,我觉得它太大了?
  • 我已经导入了熊猫@BillBell

标签: python pandas web-scraping


【解决方案1】:

您必须通过流使用该字节,例如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)

【讨论】:

    猜你喜欢
    • 2019-04-02
    • 2020-02-02
    • 1970-01-01
    • 2014-07-06
    • 2021-11-06
    • 1970-01-01
    • 2019-03-24
    相关资源
    最近更新 更多