0

我是 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有关。谢谢你。

由于这不是一项任务,因此任何其他可以更容易做到这一点的编程语言也值得赞赏,但我需要将数据存储在数组中

4

5 回答 5

1

编辑:我刚刚意识到您指的是 Yahoo! 上的选项页面!金融而不是基本的股票服务。我确信他们有一个 API,但就像股票一样,它可能没有发布。我对这个很感兴趣,所以我可能会继续寻找。

他们有一个以 CSV 格式返回股票数据的 Web 服务。这是股票查询的基本格式:

http://finance.yahoo.com/d/quotes.csv?s=GOOG&f=nl1

这采用的两个 GET 参数是符号列表(用“s=”指定)和生成的 CSV 文件的格式(用“f=”指定)。所以在上面的例子中,我使用了谷歌的股票代码,格式是得到最后的价格。您可以使用多种代码和多种格式来获取您需要的股票数据。

有关格式变量的完整列表,请查看此页面

所以你真正需要做的就是形成正确的 URL 并使用 urllib2 库的 urllib2.open(url) 方法来获取 CSV 文件,然后它只是对 csv 库进行一些基本的 CSV 解析。

或者,那里有为您构建的所有这些库。我没有用过它们,但如果我记得它们,我会发表一些评论。

于 2012-11-13T03:30:08.990 回答
0

一种可能的解决方案是抓取结果并将其存储在列表中(我假设)。您可以使用名为 lxml 的 python 库来抓取页面。http://lxml.de/

让我指出一个类似的教程,http://www.techchorus.net/web-scraping-lxml

在开始学习本教程之前,请先浏览一次 xpath。

于 2012-11-13T03:26:36.717 回答
0

谢谢大家的回复。我能用漂亮的汤做到这一点

;)

于 2012-11-13T05:23:50.353 回答
0

是的,雅虎确实有一个 API:http://finance.yahoo.com/d/quotes.csv,它可以传递一些参数;有关更多详细信息,请参阅https://github.com/bunburya/bunbot/blob/master/utils/stock.py

于 2012-11-13T03:29:32.403 回答
0

你需要和想要的是熊猫

这是一个示例片段。

  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:]
于 2012-11-13T04:10:19.547 回答