https://finance.yahoo.com/quote/VPU/history

ение нескольких месяцев я использовал URL-адрес, как это, из Perl:

http://finance.yahoo.com/d/quotes.csv?s=$s&f=ynl1 #returns yield, name, price;

Сегодня, 11.11.17, неожиданно возвращается ошибка 999.

Это глюк, или Yahoo прекратила обслуживание?

Я получаю сообщение об ошибке, даже если я ввожу URL-адрес непосредственно в браузер, например:

http://finance.yahoo.com/d/quotes.csv?s=INTC&f=ynl1

так что, похоже, это не проблема крошки.

Примечание: это НЕ вопрос, на который был дан ответ в прошлом! Это работало вчера. То, что произошло в первый месяц месяца, вызывает подозрение.

 Salavat02 нояб. 2017 г., 11:06
Они изменяют открытый тип на частный для некоторых таблиц, но (на стороне сервера, без входа в Yahoo, только с ключом приложения и секретом приложения) auth api не существует
 Dennis02 нояб. 2017 г., 03:40
Я сталкиваюсь с той же проблемой на моей стороне, все было хорошо вчера. У кого-нибудь есть рабочий код API?
 user106730502 нояб. 2017 г., 06:06
У многих людей возникает эта проблема, но поздравляю - ваш сайт остается чистым.
 despecher02 нояб. 2017 г., 16:49
Похоже, они знают об этой проблеме и намеревались ее исправить.forums.yahoo.net/t5/Known-issues-and-updates/...
 Rob02 нояб. 2017 г., 03:36
Я голосую, чтобы закрыть этот вопрос как не по теме, потому что это не статус сайта Yahoo. Мы не поддерживаем сторонние сайты или поставщиков. Свяжитесь с этим сайтом напрямую, чтобы узнать их статус. Этот сайт предназначен для программирования вопросов.

Ответы на вопрос(5)

валютный помощник Yahoo - извините, в данный момент невозможно обработать запрос - ошибка 999), Yahoo действительно прекратила работу API финансов Yahoo. Однако, в качестве обходного пути, вы можете получить доступ к массиву финансовой информации в формате JSON для данного символа тикера, выполнив запрос HTTPS GET для:https://finance.yahoo.com/quote/SYMBOL (например.https://finance.yahoo.com/quote/MSFT). Если вы сделаете запрос GET на вышеуказанный URL, вы увидите, что финансовые данные содержатся в ответе в формате JSON. Следующий скрипт Python показывает, как вы можете анализировать отдельные значения, которые могут вас заинтересовать:

import requests
import json

symbol='MSFT'
url='https://finance.yahoo.com/quote/' + symbol
resp = requests.get(url)

#parse the section from the html document containing the raw json data that we need
#you can write jsonstr to a file, then open the file in a web browser to browse the structure of the json data
r=resp.text.encode('utf-8')
i1=0
i1=r.find('root.App.main', i1)
i1=r.find('{', i1)
i2=r.find("\n", i1)
i2=r.rfind(';', i1, i2)
jsonstr=r[i1:i2]      


#load the raw json data into a python data object
data = json.loads(jsonstr)

#pull the values that we are interested in 
name=data['context']['dispatcher']['stores']['QuoteSummaryStore']['price']['shortName']
price=data['context']['dispatcher']['stores']['QuoteSummaryStore']['price']['regularMarketPrice']['raw']
change=data['context']['dispatcher']['stores']['QuoteSummaryStore']['price']['regularMarketChange']['raw']
shares_outstanding=data['context']['dispatcher']['stores']['QuoteSummaryStore']['defaultKeyStatistics']['sharesOutstanding']['raw']
market_cap=data['context']['dispatcher']['stores']['QuoteSummaryStore']['summaryDetail']['marketCap']['raw']
trailing_pe=data['context']['dispatcher']['stores']['QuoteSummaryStore']['summaryDetail']['trailingPE']['raw']
earnings_per_share=data['context']['dispatcher']['stores']['QuoteSummaryStore']['defaultKeyStatistics']['trailingEps']['raw']
forward_annual_dividend_rate=data['context']['dispatcher']['stores']['QuoteSummaryStore']['summaryDetail']['dividendRate']['raw']
forward_annual_dividend_yield=data['context']['dispatcher']['stores']['QuoteSummaryStore']['summaryDetail']['dividendYield']['raw']

#print the values
print 'Symbol:', symbol
print 'Name:', name
print 'Price:', price
print 'Change:', change
print 'Shares Outstanding:', shares_outstanding
print 'Market Cap:', market_cap
print 'Trailing PE:', trailing_pe
print 'Earnings Per Share:', earnings_per_share
print 'Forward Annual Dividend Rate:', forward_annual_dividend_rate
print 'Forward_annual_dividend_yield:', forward_annual_dividend_yield

Вывод скрипта должен выглядеть примерно так:

Symbol: MSFT
Name: Microsoft Corporation
Price: 84.14
Change: 0.08999634
Shares Outstanding: 7714590208
Market Cap: 649105637376
Trailing PE: 31.04797
Earnings Per Share: 2.71
Forward Annual Dividend Rate: 1.68
Forward_annual_dividend_yield: 0.02
 chaohuang07 июл. 2018 г., 18:56
Есть ли javascript-эквивалент этой реализации Python? Благодарю.

использующая Yahoo Finance, недавно перестала работать должным образом, но не вернула эту ошибку, она просто заменила цены акций на 0. Сначала я видел это, когда отлаживал, а затем, когда зашел на URL-адреса финансов Yahoo для этих акций, я подтвердил ошибку. Поскольку фактические данные испорчены, я не думаю, что предложенные обходные пути могли бы решить мои проблемы. Скорее всего, это связано с тем, что Yahoo прекратила использование API? Я не могу понять, что могло бы объяснить это.

Примеры:

https://finance.yahoo.com/quote/PSCT/historyhttps://finance.yahoo.com/quote/VPU/history

запрашивая некоторые API, используемые на странице finance.yahoo.com. Не уверен, будет ли Yahoo поддерживать его в долгосрочной перспективе, как это было с предыдущим API (надеюсь, что так и будет).

Я адаптировал метод, используемыйhttps://github.com/pstadler/ticker.sh в следующий взлом Python, который берет список символов из командной строки и выводит некоторые переменные в виде CSV:

#!/usr/bin/env python

import sys
import time
import requests

if len(sys.argv) < 2:
    print("missing parameters: <symbol> ...")
    exit()

apiEndpoint = "https://query1.finance.yahoo.com/v7/finance/quote"
fields = [
    'symbol',
    'regularMarketVolume',
    'regularMarketPrice',
    'regularMarketDayHigh',
    'regularMarketDayLow',
    'regularMarketTime',
    'regularMarketChangePercent']
fields = ','.join(fields)
symbols = sys.argv[1:]
symbols = ','.join(symbols)
payload = {
    'lang': 'en-US',
    'region': 'US',
    'corsDomain': 'finance.yahoo.com',
    'fields': fields,
    'symbols': symbols}
r = requests.get(apiEndpoint, params=payload)
for i in r.json()['quoteResponse']['result']:
    if 'regularMarketPrice' in i:
        a = []
        a.append(i['symbol'])
        a.append(i['regularMarketPrice'])
        a.append(time.strftime(
            '%Y-%m-%d %H:%M:%S', time.localtime(i['regularMarketTime'])))
        a.append(i['regularMarketChangePercent'])
        a.append(i['regularMarketVolume'])
        a.append("{0:.2f} - {1:.2f}".format(
            i['regularMarketDayLow'], i['regularMarketDayHigh']))
        print(",".join([str(e) for e in a]))

Пробный прогон:

$ ./getquotePy.py AAPL GOOGL
AAPL,174.5342,2017-11-07 17:21:28,0.1630961,19905458,173.60 - 173.60
GOOGL,1048.6753,2017-11-07 17:21:22,0.5749836,840447,1043.00 - 1043.00

var API = "https://query1.finance.yahoo.com/v7/finance/quote?symbols=AAPL"; $.getJSON(API, function (json) {...});вызов вызывает эту ошибку: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Происхождениеhttp://www.microplan.at/sarПоэтому не допускается доступ.

 MickG10 нояб. 2017 г., 00:35
Кажется, это нормально работает из браузера и возвращает json.
 Vignesh Subramanian10 нояб. 2017 г., 12:45
они могут также прекратить эту услугу

подтвердил что они прекратили службу

Нам стало известно, что эта служба используется с нарушением Условий предоставления услуг . Таким образом, услуга прекращается. Для всех будущих исследований рынка и акций, пожалуйста, обратитесь к finance.yahoo.com.

 Funk Forty Niner06 нояб. 2017 г., 17:10
Приложение к моему комментарию: Yahoo был куплен Verizon. Я уверен, что это как-то связано с этим, и оно идет сверху; место, о котором кто-то редко видит или узнает об этом.
 Funk Forty Niner05 нояб. 2017 г., 01:53
@AlenSiljak О, они все в порядке; за деньги, и это, вероятно, то, что это на самом деле, что они в конечном итоге предложат это снова, но люди / предприятия / кодеры должны будут заплатить за это.
 Alen Siljak05 нояб. 2017 г., 00:22
Это больше похоже на Yahooне Забота.
 Funk Forty Niner14 нояб. 2017 г., 23:29
@MarkAmery В значительной степени.
 Funk Forty Niner04 нояб. 2017 г., 22:03
Я не получаю ответ от Yahoo.

Ваш ответ на вопрос