2010-09-09 16 views
40

Tôi đang cố truy xuất dữ liệu thị trường từ Yahoo! tài chính và kịch bản đã làm việc tốt trong nhiều năm, nhưng gần đây, nó ngừng hiển thị dữ liệu Dow Jones. Dưới đây là URL:Yahoo! Tệp CSV tài chính sẽ không trả lại Dow Jones (^ DJI)

http://download.finance.yahoo.com/d/quotes.csv?s=^DJI,^IXIC,^GSPC,^TNX&f=snl1d1t1c1ohg

URL nên trả lại dữ liệu trên:

  • Dow Jones
  • NASDAQ
  • S & P
  • 10 trái phiếu năm

Nó thực sự không được trả lại cho CSV cho tôi, tôi đã thử tất cả mọi thứ tôi có thể nghĩ, nhưng vô ích, và tôi đã không nhìn thấy bất cứ ai có cùng một vấn đề trực tuyến.

Bất kỳ ý tưởng nào và có ai có cùng vấn đề không?

Cảm ơn.

+6

[Yahoo! Help] (http://help.yahoo.com/kb/index?page=content&y=PROD_FIN&locale=en_US&id=SLN2332&impressions=true) nói "Nếu bạn không thể tải xuống dữ liệu cho Trung bình Công nghiệp Dow Jones, đó là vì Yahoo! còn được cấp phép để cung cấp dữ liệu tải xuống cho chỉ số Dow Jones. Tại thời điểm này, dữ liệu chỉ số Dow Jones Industrial Average [^ DJI] chỉ có thể được xem trên màn hình. Nó không còn có thể được tải xuống nữa. " – GSee

Trả lời

31

Thay thế^DJI bằng INDU (đó là một trong các mã cho chỉ số Dow) - sẽ hoạt động.

Không biết tại sao^DJI ngừng làm việc cuối tuần trước - ai đó đã thực hiện 'tăng cường tiêu cực'.

Cheerio

GT

+0

Cảm ơn. Thật tuyệt vời. – Jake

+0

@GT, đẹp quá! Tôi đã tìm kiếm câu trả lời này từ cuối tháng 8. –

+2

Bạn cũng nên xem xét YQL, đây là cách mới để truy cập dữ liệu này. Bạn có thể tìm thấy một ví dụ ở đây: http://jarloo.com/tutorials/get-yahoo-finance-api-data-via-yql/ – Kelly

5

Tôi nghĩ rằng bạn nên liên hệ với số Yahoo! Finance. Khi họ biết hệ thống của họ và rất có thể sẽ có thể giúp đỡ.

+6

Im lặng xuống cử tri ftw! Nó chỉ không có ý nghĩa tại sao bạn sẽ không ** liên hệ với một nơi mà sẽ biết những gì đang xảy ra. –

26

Theo Yahoo tại địa chỉ:

http://developer.yahoo.net/forum/index.php?showtopic=6943

Cảm ơn bạn đã viết thư cho Yahoo! Tài chính. Tôi hiểu rằng bạn đang báo cáo rằng bạn không thể tải xuống dữ liệu CSV cho^DJI. Tôi chắc chắn có thể cung cấp cho bạn thêm thông tin về điều này. Giới hạn mà bạn đang gặp phải là do các hạn chế của chỉ số Dow Jones. Yahoo! không còn có thể cung cấp dữ liệu Dow Jones Index theo cách này. Tôi xin lỗi vì bất kỳ sự bất tiện nào gây ra. Vui lòng cho tôi biết nếu tôi có thể hỗ trợ thêm. Cảm ơn bạn một lần nữa vì đã liên hệ với Yahoo! Tài chính. Trân trọng, Brett Yahoo! Tài chính Chăm sóc khách hàng

Các bài khác mà đề nghị sử dụng INDU dường như làm việc! ... Wonder nếu Yahoo (hoặc chỉ số Dow Jones) chỉ bỏ lỡ một này và nó cuối cùng sẽ biến mất ...

+0

Cảm ơn rất nhiều! điều đó thực sự hữu ích. – Jake

+0

macchi pramaadham (có nghĩa là: xuất sắc) –

4

giờ đây yahoo bị chặn INDU, bạn có thể sử dụng ETF theo dõi chỉ mục thay thế. Tôi không nghĩ rằng họ sẽ chặn nó.

+0

Điều này dường như không còn hoạt động nữa. – Ninjakannon

8

Tôi biết câu hỏi này đã được trả lời một thời gian trước nhưng gần đây tôi đã chạy vào^DJI và Yahoo! vấn đề báo giá một lần nữa do một thay đổi khác tại Yahoo! và đã đưa ra giải pháp có thể giúp OP và bất kỳ ai khác tiếp cận trang này do tìm kiếm.

Như một chút nền, xin lưu ý rằng có một số URL có thể được sử dụng để tải xuống dữ liệu trích dẫn lịch sử từ Yahoo. Đó là:

1) http://download.finance.yahoo.com/d/quotes.csv

2) http://ichart.finance.yahoo.com/table.csv

3) http://finance.yahoo.com/q/hp

1) là một trong những OP niêm yết, 2) là có hiệu quả "tải về" liên kết mà bạn nhận được dưới đây hiển thị trang trích dẫn và 3) là URL trang báo giá lịch sử bình thường.

Nó chỉ ra rằng trong khi 1) đã bị chặn cho^DJI và một số người khác kể từ tháng 8 năm 2011 như Mario Mario, 2) đã thực sự vẫn hoạt động cho đến ngày hôm trước. Tôi biết điều này bởi vì tôi đã sử dụng nó và nó ngừng hoạt động (như nó bật ra) khoảng một tuần trước đây. Ngoài ra, 2) có lợi ích thực tế cho phép bạn truy xuất nhiều dữ liệu hơn rõ ràng thông qua 1) hoặc 3), bạn có thể truy xuất dữ liệu từ năm 1928 bằng phương pháp 2), nhưng tôi lạc đề. Dù sao, như tôi nói, 2) cũng ngừng làm việc gần đây mà lại cho tôi với sự thất vọng của việc không thể giữ cho các tập dữ liệu/mô hình của tôi được cập nhật tự động.

Vì tôi thực sự sử dụng dữ liệu^DJI cho một số mô hình của mình, tôi đã dành một giờ hoặc 2 ngày hôm nay viết một trang scraper cho trang trích dẫn bình thường (ví dụ số 3). trang web trích dẫn HTML. Đây là trong ngữ cảnh của một ứng dụng trình tải xuống dòng lệnh nguồn mở được viết bằng Python mà tôi đã thực hiện một số công việc nhỏ trong vài tháng qua. Đó là những gì tôi hiện đang sử dụng để làm mới bộ dữ liệu của tôi trên cơ sở thường xuyên. Với bản vá mới nhất, OP và bất kỳ ai khác muốn tải xuống^DJI có một giải pháp có thể khác để tải xuống^DJI theo yêu cầu.

Nếu bạn muốn thử này ra sau đó bạn sẽ cần phải tải về và cài đặt Python đầu tiên (trên Windows Linux và Mac có Python được xây dựng trong..) Tôi đề nghị phân phối Python ActiveState của, có sẵn ở đây:

http://www.activestate.com/activepython/downloads

Lưu ý rằng họ yêu cầu chi tiết đăng ký nhưng không bắt buộc. Bạn chỉ có thể bỏ qua trang đăng ký bạn nhận được sau khi nhấp vào một trong các liên kết tải xuống.

Sau đó, bạn cần nguồn chương trình pyQ. Bạn có thể có được điều này từ trang dự án ở đây:

http://bazaar.launchpad.net/~wprins/python-pyq/trunk/view/head:/pyq.py

Sửa 2016/10/20: Mã bây giờ đã có trên github và sẽ chạy theo Python 3 cũng như: https://github.com/ByteJuggler/pyq

Nhấp vào "tải về "liên kết và lưu tập lệnh ở đâu đó phù hợp. Sau đó, mở một dấu nhắc lệnh, "cd" vào thư mục mà bạn đã tải xuống tập lệnh và thử chạy tập lệnh bằng "pyq". Giả sử Python đã được cài đặt, bạn sẽ thấy một bản tóm tắt về cách sử dụng. Ở dạng đơn giản nhất, một lệnh như:

pyq IBM

sẽ tìm nạp dòng trích dẫn trực tiếp cho IBM.

Cái gì như:

pyq 20.120.601 20.120.701 IBM

... sẽ lấy dấu ngoặc kép cho IBM 20.120.601-20.120.701 ngày. Vv Đầu ra là CSV hiệu quả. Nếu bạn muốn lưu kết quả vào một tập tin, sau đó chuyển hướng đầu ra như bình thường:

pyq 20.120.601 20.120.701 IBM> ibm.csv

Dù sao, hy vọng rằng sẽ giúp một ai đó. (Tôi tình cờ đọc trang này trước đó trong khi cố gắng tìm ra lý do tại sao dữ liệu^DJI của tôi đã lỗi thời kể từ khoảng một tuần trước và quyết định đăng lại đây nếu/khi tôi đưa ra giải pháp.)

Edit: Xin lưu ý cho^DJI bạn nên trích dẫn ticker, ví dụ:

pyq 20.120.601 20.120.701 "^ DJI"> "^ DJI.csv"

+0

mã của bạn rất tuyệt, cảm ơn rất nhiều vì đã chia sẻ điều này – erantdo

1

các liên kết sau đây: http://finance.yahoo.com/q/hp?s=^DJI sẽ cung cấp cho bạn một số thông tin mà bạn quan tâm đến (như Open, DaysHigh và DaysLow).

Hơn nữa, không hoạt động mã sau:

wget -qO ^DJI.csv "http://ichart.finance.yahoo.com/table.csv?s=^DJI" 

có thể được thay thế bằng các xe cho thuê như sau:

(echo "Date,Open,High,Low,Close,Volume,Adj Close" 
for y in {0..7603..66}; do # increase 7603 if necessary 
    wget -qO- "http://finance.yahoo.com/q/hp?s=^DJI&y=$y" | 
    sed 's/<\/\(td\|a\)>/\n/g' | 
    grep yfnc_tabledata1 | 
    sed -e 's/<.*>//g' -e 's/\([0-9]\),\([0-9]\)/\1\2/g' | 
    grep -v ^$ | 
    awk 'BEGIN {m["Jan"]=1; m["Feb"]=2; m["Mar"]=3; 
    m["Apr"]=4; m["May"]=5; m["Jun"]=6; 
    m["Jul"]=7; m["Aug"]=8; m["Sep"]=9; 
    m["Oct"]=10; m["Nov"]=11; m["Dec"]=12} 
    NR%7==1 {printf "%d-%02d-%02d,",$3,m[$1],$2} 
    NR%7>1 {printf "%s,",$0} NR%7==0' 
done) > ^DJI.csv 

mà sẽ tạo ra một bảng với dữ liệu lịch sử hàng ngày cho^DJI bắt đầu từ Ngày 29 tháng 1 năm 1985.

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