我正在尝试创建一个简单的程序,在我输入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。
任何帮助都会非常感激,因为我是编程新手,并希望纠正我的错误。
最佳,
猎人
答案 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'])
。