2012-10-07 26 views
5

Tôi đang cố gắng để có được chuỗi tùy chọn cổ phiếu từ Yahoo sử dụng YQL. Tôi đã thử lệnh này trong YQL console:Làm thế nào tôi có thể nhận được chuỗi tùy chọn cổ phiếu bằng YQL?

select * from yahoo.finance.options 

Tuy nhiên, tôi nhận được lỗi XML này:

<?xml version="1.0" encoding="UTF-8"?> 
<error xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:lang="en-US"> 
    <diagnostics> 
     <publiclyCallable>true</publiclyCallable> 
    </diagnostics> 
    <description>No definition found for Table yahoo.finance.options</description> 
</error> 

Nó trông giống như bảng này không tồn tại nữa. Có ai biết bảng đúng không?

+0

Khi tôi thử câu lệnh YQL của bạn trong bảng điều khiển YQL, tôi đã nhận 'Không thể tìm thấy các khóa bắt buộc trong mệnh đề where; mong đợi các phím bắt buộc: (ký hiệu). 'Nhưng khi tôi thêm mệnh đề where' symbol = 'GOOG' AND expiration = '2010-06' 'thì không có vấn đề gì cả. Chúng ta đang nói về điều này, đúng không? (http://developer.yahoo.com/yql/console/) –

+0

Vâng, đó là giao diện điều khiển mà tôi đang nói đến. Tôi có một bảng cộng đồng, và đó là một phần lý do tại sao nó không hoạt động. Tôi nghĩ yahoo.finance.options là một bảng mà Yahoo quản lý, nhưng nó thực sự là một bảng cộng đồng từ datatables.org. Cảm ơn! –

Trả lời

1

yahoo.finance.options là một bảng cộng đồng. Để đọc về các bảng cộng đồng, hãy kiểm tra here. Từ liên kết tôi vừa đăng:

Để sử dụng YQL với bảng cộng đồng, bạn phải chuyển vào tệp env datatables. Bạn có thể thực hiện điều này trên bảng điều khiển YQL như một phần của câu lệnh YQL hoặc bằng cách truyền tham số truy vấn.

Các YQL console để kiểm tra này có thể được tìm thấy here

+0

Tôi không biết tôi có thể nhấn "hiển thị các bảng cộng đồng" để có được bảng này. Đó là lý do tại sao nó không làm việc cho tôi. Cảm ơn! –

3

Bạn phải cung cấp ít nhất một where clause để làm cho công việc truy vấn này. Như thế này:

select * from yahoo.finance.options where symbol='MMM' 

hay,

select * from yahoo.finance.options where symbol='A' 

hay,

select * from yahoo.finance.options where symbol='YHOO' 

Tất cả các truy vấn trên hoạt động tốt. Nếu bạn muốn có dữ liệu cụ thể hơn thì bạn phải cung cấp nhiều điều kiện hơn để lọc ra dữ liệu mong muốn của bạn ra khỏi toàn bộ dữ liệu.

+0

hiện vẫn hoạt động? – Merlin

+0

Vâng, nó hoạt động tốt. Tôi chỉ cần kiểm tra. Truy cập trang này: https://developer.yahoo.com/yql/console/?q=select%20%2a%20from%20yahoo.finance.options&env=store://datatables.org/alltableswithkeys#h=select% 20% 2a% 20from% 20yahoo.finance.options% 20%% 20symbol =% 27GOOG% 27 và nhập: chọn * từ yahoo.finance.options nơi symbol = 'YHOO' và sau đó nhấn mông thử, bạn sẽ thấy kết quả. Tất cả các truy vấn trong câu trả lời của tôi đều hoạt động tốt. –

+0

Tôi cũng đã kiểm tra, dường như hoạt động ... Hai câu hỏi có giới hạn sử dụng yahoo không?Nó chỉ cho tôi tháng đầu tiên, Làm thế nào tôi có thể nhận được ba tháng tiếp theo hoặc nói 2014-05, 2014-06, 2014-07 hoặc 'ba tháng tới'. Là url hoặc uri, chuỗi là gì ... – Merlin

0

Kể từ giữa năm 2014 YQL có vấn đề, vì vậy chuỗi tùy chọn từ yahoo.finance với cào có thể nhận được bằng các mã sau đây: PythonMatlab

-1

Something Tôi chỉ tìm ra hiện nay là bạn có thể chỉ sử dụng tính năng này để lấy dữ liệu tùy chọn từ yahoo

https://query2.finance.yahoo.com/v7/finance/options/SPXS?straddle=true 
+0

Tôi không biết tại sao một người nào đó bỏ phiếu cho câu trả lời của tôi, nhưng điểm cuối tôi cung cấp trong câu trả lời ở trên trả về cho bạn một JSON và nếu bạn không thể xử lý JOSN, thì tôi nghĩ StackOverflow là trang web sai cho bạn –

+1

đã bỏ phiếu vì câu hỏi cụ thể yêu cầu YQL – BigBen

Các vấn đề liên quan