1

友人が使用するアプリケーションは、特定のサイトリンクからレートのソースまでの毎日の為替レートの数値によって異なります

問題は、レートが変更されたときにビジネスに影響を与える設定された時間がないことです。レートが変更されたときに彼女が外出する可能性があるため、彼が戻るまで、発生するトランザクションは最後に入力されたレートを使用します。時々彼女は勝ちます他の時には彼女は負けます。彼女の為替レートを個別に取得して更新する自動クライアントを作成しようとしています。

これまでのところ、サイトのコンテンツをリストにまとめることができました。

[
<td style="text-align: left;">U.S Dollar</td>,
<td>USDGHS</td>, <td>1.8673</td>, <td>1.8994</td>,
<td style="text-align: left;">Pound Sterling</td>,
<td>GBPGHS</td>, <td>3.0081</td>, <td>3.0599</td>,
<td style="text-align: left;">Swiss Franc</td>,
<td>CHFGHS</td>, <td>2.0034</td>, <td>2.0375</td>,
<td style="text-align: left;">Australian Dollar</td>,
<td>AUDGHS</td>, <td>1.9667</td>, <td>2.0009</td>,
<td style="text-align: left;">Canadian Dollar</td>,
<td>CADGHS</td>, <td>1.8936</td>, <td>1.9259</td>,
<td style="text-align: left;">Danish Kroner</td>,
<td>DKKGHS</td>, <td>0.3255</td>, <td>0.3311</td>,
<td style="text-align: left;">Japanese Yen</td>,
<td>JPYGHS</td>, <td>0.0226</td>, <td>0.0230</td>,
<td style="text-align: left;">New Zealand Dollar</td>,
<td>NZDGHS</td>, <td>1.5690</td>, <td>1.5964</td>,
<td style="text-align: left;">Norwegian Kroner</td>,
<td>NOKGHS</td>, <td>0.3307</td>, <td>0.3363</td>]

私は今、そのような辞書を作成するのに少し苦労しています

{USDGHS: [1.8673, 1.8994], GBPGHS: [3.0081, 3.0599], ...}

次に、ディクショナリを使用して、データベース内の適切なテーブルを更新します。

beautifulsoup4とurllib2を使ってこの段階に到達しました

[編集]

この点に到達したコード

from bs4 import BeautifulSoup
import urllib2

url = "http://bog.gov.gh/data/bankindrate.php"
page = urllib2.urlopen(url)

soup = BeautifulSoup(page.read())

td = soup.find_all('td')

another_soup = BeautifulSoup(td[:-3])

print another_soup
4

1 に答える 1

3

最初に行(タグ)を見つけ、trそれらを使用して列(tdタグ)を取得する必要があります。

currencies = {}
trs = soup.find_all('tr') # find rows
for tr in trs[1:-3]: # skip first and last 3 (or whatever)
    text = list(tr.strings) # content of all text stuff in tr (works in this case)
    # [u'U.S Dollar', u'USDGHS', u'1.8673', u'1.8994']
    currencies[text[1]] = [float(text[2]), float(text[3])]

そして、2つの数値の値が浮動小数点数に変換された適切なキーを使用してそれらを辞書に入れます...

>>> currencies
{u'USDGHS': [1.8673, 1.8994], u'JPYGHS': [0.0226, 0.023], u'CHFGHS': [2.0034, 2.0375], u'CADGHS': [1.8936, 1.9259], ...}
于 2012-12-12T15:50:10.200 に答える