Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python抓取汇率数据_Python_Python 2.7 - Fatal编程技术网

python抓取汇率数据

python抓取汇率数据,python,python-2.7,Python,Python 2.7,朋友使用的应用程序取决于特定站点的每日汇率数据 问题在于,汇率变动时没有设定时间,这会影响业务,因为有时汇率变动时,她可能会退出,因此,在他回来之前,发生的任何交易都将使用最后输入的汇率。有时她赢了,有时她输了。我正在尝试创建一个自动客户端,它将为她独立地刮取和更新汇率 到目前为止,我已经能够将该网站的内容精简为一个列表: [ <td style="text-align: left;">U.S Dollar</td>, <td>USDGHS</td>

朋友使用的应用程序取决于特定站点的每日汇率数据

问题在于,汇率变动时没有设定时间,这会影响业务,因为有时汇率变动时,她可能会退出,因此,在他回来之前,发生的任何交易都将使用最后输入的汇率。有时她赢了,有时她输了。我正在尝试创建一个自动客户端,它将为她独立地刮取和更新汇率

到目前为止,我已经能够将该网站的内容精简为一个列表:

[
<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>]
然后,我将使用字典更新数据库中相应的表

我是通过使用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

您需要首先找到行(
tr
标记),然后使用这些行来获取列(
td
标记):

并使用适当的键将它们放入字典中,并将两个数字的值转换为浮点数

>>> 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], ...}

看起来你只需要再使用beautifulsoup4一点。。。你能把你的密码发到这吗?如果有人愿意,它会帮助他们experiment@JonClements这里的钱(不是双关语)。您应该根据从源代码获得的响应构建一个DOM,然后遍历它以提取您感兴趣的数据。现在看起来,你正在做文本解析,这通常会让你在这种情况下的生活更加艰难。
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])]
>>> 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], ...}