我是Python的新手,但我有一个挑战,我正在努力完成。这与课程无关,但我正在尝试学习如何使用python网站。
我想做以下事情:
访问此网站:http://finance.yahoo.com/q/op?s=FB&m=2012-12
存储所有罢工,并将与市场价格以下的罢工相对应的要求存入名为“罢工”的数组中并询问
见图片澄清:
与图片对应的示例数组将是:
罢工= [10,11,12,13,14,15,16,17,18,19,20]
问= [10.20,8.20,7.20,6.30,5.30,4.40,3.50,2.75,2.05,1.45]
它不会攫取21-27次罢工,因为这高于市场价格。如果可以使用python,请告诉我。谢谢。
由于这不是一个任务,任何其他可以更容易做到这一点的编程语言也很受欢迎,但我需要存储在数组中的数据
答案 0 :(得分:1)
编辑:我刚刚意识到您正在参考Yahoo!上的选项页面财务而不是基本的股票服务。我确定他们有一个API,但就像股票一样,它可能没有发布。我对此很感兴趣,所以我可能继续寻找。
他们有一个Web服务,以CSV格式返回股票数据。这是股票查询的基本格式:
这两个GET参数是符号列表(用's ='表示)和生成的CSV文件的格式(用'f ='表示)。所以在上面的例子中,我使用了谷歌的股票代码,格式是获得最后的价格。您可以使用多个符号和多种格式来获取所需的库存数据。
有关格式变量的完整列表,请查看此page。
所以你真正需要做的就是形成正确的URL并使用urllib2库的urllib2.open(url)方法来获取CSV文件,然后它只是用csv库进行一些基本的CSV解析。
或者,有一些库可以为您构建所有这些。我没有使用它们,但如果我能记住它们,我会发表一些评论。
答案 1 :(得分:0)
一种可能的解决方案是刮取结果并将其存储在列表中(我假设)。您可以使用名为lxml的python库来刮取页面。 http://lxml.de/
让我指出一个类似的教程,http://www.techchorus.net/web-scraping-lxml
在开始本教程之前,先浏览一下xpath。
答案 2 :(得分:0)
是的,雅虎确实有一个API:http://finance.yahoo.com/d/quotes.csv,可能会传递一些参数;有关详细信息,请参阅https://github.com/bunburya/bunbot/blob/master/utils/stock.py。
答案 3 :(得分:0)
您需要和想要的是Pandas
以下是一个示例代码段。
1 from pandas.io.data import DataReader
2 from datetime import datetime
3
4 dr = DataReader("YHOO", "yahoo")
5
6 print "Yahoo's stock price over time"
7 print dr["Volume"]
8
9 yh_by_date = DataReader("YHOO", "yahoo", datetime(2009,1,1))
10
11 print "We want to restrict it based on specific dates"
12 print yh_by_date["Adj Close"][-100:]
答案 4 :(得分:0)
感谢大家的回复。我能用漂亮的汤做到这一点
)