Я пытаюсь создать скрипт для запроса API национальной сети Великобритании. Вот мой код:
import requests
import pandas as pd
from lxml import etree
def getXML(toDate, fromDate, dayType):
url = "http://marketinformation.natgrid.co.uk/MIPIws-public/public/publicwebservice.asmx"
headers = {'content type': 'application/soap+xml; charset=utf-8'}
body="""
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetPublicationDataWM xmlns="http://www.NationalGrid.com/MIPI/">
<reqObject>
<LatestFlag>N</LatestFlag>
<ApplicableForFlag>Y</ApplicableForFlag>
<ToDate>%s</ToDate>
<FromDate>%s</FromDate>
<DateType>%s</DateType>
<PublicationObjectNameList>
<string>LNG Stock Level</string>
</PublicationObjectNameList>
</reqObject>
</GetPublicationDataWM>
</soap:Body>
</soap:Envelope>
""" % (toDate,fromDate,dayType)
response=requests.post(url,data=body,headers=headers)
return response.content
df = pd.DataFrame(columns=("applicable_at","applicable for","name","value","generated","quality indicator","substituted","created date"))
for pd_date in pd.date_range('2019-01-01','2019-01-03'):
day = pd_date.strftime('%Y-%m-%d')
root = etree.fromstring(getXML(day,day,"normal"))
Но я получаю следующую ошибку:
File "<string>", line 1
XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
Я пытался следовать рекомендации, предоставленной Национальной сеткой (ссылка ниже), но продолжайте возвращать ту же ошибку.
http://marketinformation.natgrid.co.uk/MIPIws-public/public/publicwebservice.asmx?op=GetPublicationDataWM