指数美丽的汤

时间:2015-12-11 22:09:48

标签: python-3.x beautifulsoup

我正在尝试创建一个简单的程序,在我输入Google财务地址时打印股票价格。

我目前使用的代码如下。

DebugLog($debugFileName,$db->error);
= 
You have an error in your SQL syntax; 
check the manual that corresponds to your 
MySQL server version for the right syntax 
to use near 'INSERT INTO equipment (tag,date' at line 1

当我运行代码时,我一直使用http://www.google.com/finance?q=NASDAQ%3AAAPL&ei=4UJrVomFNZGje7y-pJAP作为参数。在运行代码时,它表明列表索引超出范围。我使用firebug来获取我的代码中的soup.select部分的CSS。

任何帮助都会非常感激,因为我是编程新手,并希望纠正我的错误。

最佳,

猎人

1 个答案:

答案 0 :(得分:3)

快速检查显示,您从此请求获得的原始html在其中的任何位置都不会“保持不变”:尝试运行

curl http://www.google.com/finance?q=NASDAQ%3AAAPL&ei=4UJrVomFNZGje7y-pJAP | grep "unchanged"

没有结果。

或者如果您不喜欢命令行,可以在python中尝试:

r = requests.get(url)
print("unchanged" in r.text)  # will be False

没有匹配。这是因为一旦页面的javascript将数据加载到也在javascript中生成的<span class="unchanged"></span>标记中,“未更改”值才会显示。

您可以使用googlefinance Python library来获取此数据。当然首先安装:pip install googlefinance。然后

from googlefinance import getQuotes
aapl = getQuotes('AAPL')
print(aapl)  # provides a bunch of info in a list including...
last_price = aapl[0]['LastTradePrice']

last_price是一个字符串,因此要转换为浮点数float(aapl[0]['LastTradePrice'])