gpt4 book ai didi

python - Pandas read_html 给我权限被拒绝(403)

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:01 26 4
gpt4 key购买 nike

我注册通过提供商获取货币价格。当我使用 pd.read_html('URL') 时,出现 403 错误 - 权限被拒绝。所以我然后尝试通过这样做来模拟浏览器-

import pandas as pd
import matplotlib.pyplot as plt
import html5lib
import requests
%matplotlib inline

### Pretend to be a browser ###
url = 'URL_TO_PROVIDER_WITH_TOKEN'
header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36","X-Requested-With": "XMLHttpRequest"}

r = requests.get(url, headers=header)

currency = pd.read_html('r')

但是这给了我“找不到表格”。来源看起来像这样 -

{"status":true,"currency":[{"currency":"GBP\/CAD","value":"1.7136","date":"2019-01-18 17:19:58","type":"original"}]}

我做错了什么?

编辑

如果源文件中没有表,那么如何将数据获取到 Pandas 中?正如你所看到的,我想要“解析”的数据看起来像这样(json)

{"status":true,"currency":[{"currency":"GBP\/CAD","value":"1.7136","date":"2019-01-18 17:19:58","type":"original"}]}

编辑

很明显,源代码不是 html,并且其中没有表格。因此 JSON 是最佳选择。我设法保存 JSON 结构

r = requests.get(url, headers=header).json()

但后来我陷入困境。 r 的输出看起来像这样 -

{'status': True,
'currency': [{'currency': 'GBP/CAD',
'value': '1.7083',
'date': '2019-01-18 22:59:58',
'type': 'original'}]}

如何将列获取到数据框?我想要“货币”:“英镑/加元”,“值(value)”:“1.7083”和“日期”:“2019-01-18 22:59:58”

编辑 - 解决方案

url = 'URL_API_TOKEN'
header = {"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36","X-Requested-With": "XMLHttpRequest"}

r = requests.get(url, headers=header).json()

data = json_normalize(r['currency'])

最佳答案

尝试使用:货币 = pd.read_html(r)

而不是:货币 = pd.read_html('r')

因为您使用字符串“r”作为参数而不是变量 r 来调用 read_html 方法

SLP

关于python - Pandas read_html 给我权限被拒绝(403),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256373/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com