私はいくつかのWeb廃棄の例をしようとしています。私はウェブサイトからデータをダウンロードし、そのデータはxmlとそのようなもので構成されています。xmlから必要なデータを抽出する方法
ValCurs Date="20.04.2016" name="Official exchange rate">
<Valute ID="47">
<NumCode>978</NumCode>
<CharCode>EUR</CharCode>
<Nominal>1</Nominal>
<Name>Euro</Name>
<Value>22.4023</Value>
</Valute>
<Valute ID="44">
<NumCode>840</NumCode>
<CharCode>USD</CharCode>
<Nominal>1</Nominal>
<Name>US Dollar</Name>
<Value>19.7707</Value>
</Valute>
.
.
.
.
.
25以上の通貨があります。
換算レートを表す通貨名と値のみを抽出したいと思います。 50日間のデータがあり、この50日間の各通貨の平均為替レートを計算したいと考えています。 データをダウンロードしてxmlファイルに保存します。私のコードは以下の通りです。
import os
import requests as rq
from bs4 import BeautifulSoup
from xml.etree import ElementTree as ET
def saveData(path, date):
session = rq.session()
url = 'https://www.bnm.md/en/official_exchange_rates?get_xml=1&date=' + date
datastore = session.get(url)
with open(path, 'wb') as f:
f.write(datastore.content)
value = ET.fromstring('/home/robbin/Desktop/20.04.2016.xml').find('Name/value')
if value:
print 'Found value:', value.text
def main():
dates = ['20.04.2016', '21.04.2016', '22.04.2016']
paths = []
for date in dates:
path = '/home/robbin/Desktop/{}.xml'.format(date)
paths.append(path)
for path, date in zip(paths, dates):
saveData(path, date)
if __name__ == '__main__':
main()
私はこのエラーを得た: 昇給ERR
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0
私の問題は、私はこのXMLデータから名前と値のデータを抽出することができませんということです。私はSOとインターネットのいくつかの例を見ましたが、私の場合とはかなり異なっています。誰かが助けることができれば、それは素晴らしいことでしょう。
私はあなたのソリューションを試しましたが、それは返されていないまたは画面上の何も印刷されていないと、nabazは、XMLが適切にフォーマットされていないことを言及します。私はこのデータをウェブサイトから入手し、コードはURLの中に与えられます – robbin
投稿された 'savedData'関数を試してください... –
ありがとう、それは今働いていて、xmlタグから値を抽出できます。あなたは私の日を救う。元気な一日 – robbin