我有一个项目需要帮助。我希望能够访问我创建的网站,例如 abc123.com,并让它显示道琼斯指数。就是这样。只需在我的 abc123.com 网站上显示一个数字,例如 12050。
显然,我必须从诸如雅虎财经之类的地方获取数据。我不想下载任何 .csv 文件或类似的文件。而且它不需要是实时数据,因为我知道雅虎的数据延迟了 15 分钟。只是希望能够访问我自己的网站,看看道琼斯指数是什么。
在问这个问题之前,我确实研究了一些关于 SO 的类似问题,但其中很多都没有得到解答或引用了 YQL(我目前正在研究并试图理解的东西)。
任何有关执行此操作的最简单方法的指导将不胜感激!我是 HTML 的初级程序员,正在寻找最容易理解和实现的路线。
我有一些相当严重的代码,几乎可以为雅虎财务公司制作有形的价格/账簿(一个很好的模块已经ystockquote获得了无形的价格/账面价值).
我的问题是:
对于计算中的一个变量,我发现的股票有10.89B和4.9M,其中B和M分别为亿和百万.我无法将它们转换为数字,这就是我所处的位置:
shares=''.join(node.findAll(text=True)).strip().replace('M','000000').replace('B','000000000').replace('.','') for node in soup2.findAll('td')[110:112]
Run Code Online (Sandbox Code Playgroud)
这是非常混乱的,但我认为如果不是,它会起作用
.replace('M','000000').replace('B','000000000').replace('.','')
Run Code Online (Sandbox Code Playgroud)
我正在使用带变量的正则表达式.我想这个问题只是简单的正则表达式和变量.其他建议也很好.
具体来说,我希望有一些适用于零,一或两位小数的数字,但这些答案看起来都很有帮助.
我正在尝试制作一个新的应用程序,我想获得股票更新、货币兑换更新等。你能推荐一些免费的 API 来获取这些更新吗?我已经尝试过:
1)谷歌财经API。不使用的原因:已弃用并即将关闭,这将使我的应用程序过时。
2)雅虎财经API。不使用的原因:没有适当的文档。原因是雅虎实际上没有财务 API。似乎有些人对他们用来提取财务数据的 API 进行了逆向工程,但他们违反了雅虎的服务条款。我不想那样做。(阅读http://developer.yahoo.com/forum/General-Discussion-at-YDN/Using-Yahoo-Finance-API-Not-RSS-/1250246255000-0b82f8f0-7f48-3af2-8fe2-e73a138cbfaa)
如果提供指向某些资源或代码的链接,那就太好了。我在这里先向您的帮助表示感谢。
在我的申请中,我需要获得不同货币的当前汇率.因为它已经被提出这个,这个和这个问题的一个很好的办法做到这一点,是使用雅虎财经服务.
所以,当我想找到例如美元和加元之间的汇率时,我只需发送此链接: http://download.finance.yahoo.com/d/quotes.csv?s=USDCAD=X&f=sl1d1t1ba&e=.csv
这对于我的带有Android 2.3.4的摩托罗拉Atrix手机和再次使用Google API 2.3.3的模拟器都可以正常工作.但是,当我尝试使用Android ICS 4.0的Galaxy SII和使用Google API 4.0的模拟器完全相同的链接时,在两种情况下,quotes.csv文件仅包含"缺失符号列表".
在挖掘之后,我发现如果没有找到费率,就会发生这种反应.但是这个响应是我在Android 4.0(Galaxy SII或模拟器)下尝试的任何货币.因此,我无法使用Android 4.0获得费率,但我可以使用Android 2.x.
有没有人遇到过同样的问题?有没有解决方法?
编辑:这是处理从雅虎货币服务下载费率的线程代码:
//show the progress dialog
downloadingDialog.show();
Runnable getRates = new Runnable() {
public void run(){
dataNotFound = false;
final String baseDir = getApplicationContext().getFilesDir().getAbsolutePath();
//download the rates from yahoo to a CSV file
downloadFileViaHTTP (baseDir);
//read the file line
String filePath = baseDir + "/" + "quotes.csv";
Log.d(tag, "-> filePath = " + filePath);
try {
// …Run Code Online (Sandbox Code Playgroud) android currency yahoo-finance android-4.0-ice-cream-sandwich
我有几个要求,如下所列.
现在使用以下代码我能够获得股票价格,但要么我必须刷新页面或调用ajax,在这两种情况下需要20到30秒,但在许多财务网站,他们可以每秒更新价格而不使用ajax.
<?php
/**
* Class to fetch stock data from Yahoo! Finance
*
*/
class YahooStock {
/**
* Array of stock code
*/
private $stocks = array();
/**
* Parameters string to be fetched
*/
private $format;
/**
* Populate stock array with stock code
*
* @param string $stock Stock code of company
* @return void
*/
public function addStock($stock)
{
$this->stocks[] = $stock;
}
/**
* Populate parameters/format to be fetched
*
* @param …Run Code Online (Sandbox Code Playgroud) 我需要修改这个示例代码,以便将它与日常数据一起使用,我应该从这里和此处获取.据我所知,该示例中的代码适用于任何历史数据(或不是?),因此我的问题归结为以必要的格式(我的意思是每日或日内)加载初始数据的问题.
正如我也从这个问题的答案中理解的那样,不可能加载日内数据getSymbols().我试图将这些数据下载到我的硬盘驱动器中,然后使用一个read.csv()函数来获取它,但这种方法不能正常工作.最后,我在各种文章(例如这里)中找到了这个问题的解决方案,但是所有这些解决方案看起来都非常复杂和"人为".
所以,我的问题是如何从程序员的角度优雅而正确地将给定的日内数据加载到给定的代码中,而不重新发明轮子?
PS我对R和quantstrat中的时间序列分析很新,因此如果我的问题看起来很模糊,请告诉我你需要知道什么才能回答它.
我正在尝试使用 Python从雅虎财经的损益表中抓取数据。具体来说,假设我想要最新的Apple Net Income 数据。
数据由一堆嵌套的 HTML 表格构成。我正在使用该requests模块来访问它并检索 HTML。
我正在使用BeautifulSoup 4来筛选 HTML 结构,但我不知道如何获得这个数字。
这是使用 Firefox 进行分析的屏幕截图。
到目前为止我的代码:
from bs4 import BeautifulSoup
import requests
myurl = "https://finance.yahoo.com/q/is?s=AAPL&annual"
html = requests.get(myurl).content
soup = BeautifulSoup(html)
Run Code Online (Sandbox Code Playgroud)
我尝试使用
all_strong = soup.find_all("strong")
Run Code Online (Sandbox Code Playgroud)
然后得到第 17 个元素,它恰好是包含我想要的图形的元素,但这似乎很不优雅。像这样的东西:
all_strong[16].parent.next_sibling
...
Run Code Online (Sandbox Code Playgroud)
当然,目标是用于BeautifulSoup搜索我需要的数字的名称(在本例中为“净收入”),然后在 HTML 表的同一行中获取数字本身。
我非常感谢有关如何解决此问题的任何想法,请记住,我想应用该解决方案从其他雅虎财经页面检索一堆其他数据。
解决方案/扩展:
低于@wilbur该解决方案的工作,我在扩大它能够得到的数值的任何可用的身影任何的财务页面(即损益表,资产负债表和现金流量表)对任何上市公司。我的功能如下:
def periodic_figure_values(soup, yahoo_figure):
values = …Run Code Online (Sandbox Code Playgroud) Yahoo Finance (web.DataReader(stock, 'yahoo', start, end)) 中的 Volume 是什么意思?是平均每日交易量还是平均美元交易量?它是股票数量还是美元数量?
我正在构建一个 Node.js 应用程序,但遇到了一个小问题。
我想根据股票的 ISIN 从雅虎财经实时获取股票的价格。
我已经使用股票代码获得了这个价格(例如:Apple Inc. 的 AAPL)
这是我的代码:
var stock_url = "http://finance.yahoo.com/d/quotes.csv?s=AAPL&f=a";
request(stock_url, function (error, response, body) {
if (!error && response.statusCode == 200) {
var stock_data = body;
console.log("Yahoo Finance API: ", stock_data);
};
});
Run Code Online (Sandbox Code Playgroud)
谢谢!
在过去的 3 年里,我一直在使用以下 URL,没有出现任何问题。但是,它已停止返回结果。
网址: https ://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("ARSARS")&env=store://datatables.org/alltableswithkeys
现在返回以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="0" yahoo:created="2017-11-02T09:33:25Z" yahoo:lang="en-AU">
<results/>
</query><!-- total: 9 -->
Run Code Online (Sandbox Code Playgroud)
请注意没有结果,它只有“结果”标签。
我已经尝试过很多不同的计算机和浏览器。我也尝试过更改货币组合,但没有运气。
任何人都可以发现我做错了什么吗?
yahoo-finance ×10
python ×3
android ×2
html ×2
php ×2
ajax ×1
android-4.0-ice-cream-sandwich ×1
api ×1
csv ×1
currency ×1
datareader ×1
finance ×1
java ×1
jquery ×1
node.js ×1
quantmod ×1
quantstrat ×1
r ×1
regex ×1
volume ×1
web-scraping ×1
xml ×1
yahoo-api ×1