我正在遷移一些Yahoo Finance CSV/screen-scraping接口以使用YQL,並且正在使用yahoo.finance.options表格掙扎。如果我查詢給定符號的所有選項,我沒有找到與選項關聯的到期日期。如果我查詢符號和到期日,那麼我會發現與該鏈有關的到期日期,但不是其中的選項。雖然我熟悉期權到期週期,並可以從給定的日期啓動它,但這是一個糟糕的解決方案;一方面,它會產生更多的查詢。我更喜歡從數據中反思它,因爲它應該是可用的(它可以被屏幕刮掉)。任何人都知道如何在YQL中做到這一點,還是我運氣不好?YQL期權到期
下面是我使用一些Python代碼:
from xml.etree.ElementTree import ElementTree
import urllib, urllib2
class YQL(object):
url = 'http://query.yahooapis.com/v1/public/yql'
env = 'store://datatables.org/alltableswithkeys'
format = 'xml'
@classmethod
def query(cls, string):
q = urllib.quote(string)
url = cls.url + '&'.join(('?q=%s' % q, 'env=%s' % cls.env,
'format=%s' % cls.format))
resp = urllib2.urlopen(url)
return ElementTree(file=resp).getroot().find('results')[:]
chain = YQL.query('select * from yahoo.finance.options where symbol="WFC"')[0]
chain.attrib
option = chain[0]
option.attrib
for attr in option:
print attr.tag, attr.text
這就是我害怕的,但我最初的懷疑是我錯過了一些東西,而不是表數據模型有一個明顯的缺陷(使過期日期爲可選輸入,但不返回查詢結果中的任何地方)。 – csingley
感謝unutbu,這很有幫助。這是有道理的,到期將默認爲前一個月。然而,如果這個接口每次到期需要一個單獨的查詢,並且它需要一個發現帶外可用過期(例如LEAPS是否可用於後幾年),那麼我想我會堅持屏幕刮擦他們!財務選項頁面暫時。 – csingley
你對這個選項數據的看法如何?不僅是到期。它可以被使用嗎? – Merlin