使用 BeatifulSoup 进行 Python 网页抓取

问题描述 投票:0回答:1

我对 Python 还很陌生,但喜欢学习新东西。 我想创建一个 Python 脚本来返回电力的返回电价,我想将该值输入到我的家庭自动化系统(openHAB)中,当返回值为负值时,我将关闭我的太阳能电池板。

我的电力公司有某种 Web XML API,您可以通过在 URL 中添加日期/时间作为参数来获取这些值,这一切都有效,但我不知道如何废弃确切的返回关税号码因为它不是文件中的单独标签。这就是我到目前为止所想到的:

from bs4 import BeautifulSoup
import requests
import datetime

currentT = datetime.datetime.now()

url = 'https://mijn.easyenergy.com/nl/api/tariff/getapxtariffs?startTimestamp='+currentT.strftime('%Y-%m-%d')+'T'+currentT.strftime("%H")+'%3A00%3A00.000Z&endTimestamp='+currentT.strftime('%Y-%m-%d')+'T'+currentT.strftime("%H")+'%3A59%3A00.000Z'
response = requests.get(url, verify=False)
soup = BeautifulSoup(response.text, features="lxml")

for tag in soup('p'):
    print(tag)

这是它现在使用的当前 URL:

https://mijn.easyenergy.com/nl/api/tariff/getapxtariffs?startTimestamp=2024-04-02T14%3A00%3A00.000Z&endTimestamp=2024-04-02T14%3A59%3A00.000Z

如果您打印汤,它会返回此数据:

<html><body><p>[{"Timestamp":"2024-04-02T14:00:00+00:00","SupplierId":0,"TariffUsage":0.005215100000000000,"TariffReturn":0.00431}]</p></body></html>

所以所有数据都在标签 P 中,但我只对后面的数字感兴趣:TariffReturn 我应该如何从这里开始获取这些数据?

python beautifulsoup
1个回答
0
投票

如果端点返回 xml 数据,为什么还要使用 beautifulsoup?

import requests
response = requests.get("your url")
print(response.json[0].get("TariffReturn")
© www.soinside.com 2019 - 2024. All rights reserved.