使用Elasticsearch从Yahoo-Finance查询服务器收集信息

ssgvzors  于 2023-01-12  发布在  ElasticSearch
关注(0)|答案(2)|浏览(144)

我一直试图使用以下网址查询雅虎财经:
https://query1.finance.yahoo.com/v1/finance/lookup?formatted=true&lang=en-US&region=US&query=A*&type=equity&count=10001&start=0&scroll=true
我收到以下消息:
{“finance”:{“result”:null,“error”:{“code”:“internal-error”,“description”:“ElasticSearch异常[type=非法参数异常,reason=结果窗口太大,from + size必须小于或等于:[10000],但实际为[10001]。有关请求大型数据集的更有效方法,请参阅滚动API。可以通过更改[index.max_result_window]索引级别设置来设置此限制。]"}}}
我不熟悉Elasticsearch,所以在过去的几天里,我一直试图了解它,几乎花了我所有的时间试图弄清楚,但我找不到太多的信息。我宁愿完全避免使用Elasticsearch和使用python写一个请求,该链接,并以某种方式设置“index.max_result_window”,使网站将返回超过10,000行数据,我正在尝试将我从上面的url接收到的数据保存为json文件。
我曾试图在网上注册免费的ElasticSearch服务,但我不知道如何提供上述URL作为输入源。
任何帮助都是非常感谢的。

carvr3hs

carvr3hs1#

这个设置是在索引级别设置的,也就是雅虎财经使用的弹性。你不能用查询来做这个改变,只有索引管理器可以做。
ElasticSearch具有滚动API,可用于此elastic.co/guide/en/elasticsearch/reference/2.2/search-request-scroll.html

uqjltbpv

uqjltbpv2#

你没有使用Elasticsearch。雅虎使用的是Elasticsearch。你使用的是雅虎的API。
您必须向Yahoo发出多个API请求才能检索到超过10,000个数据点。
您可以使用start查询参数来指定要检索的下一个数据点的索引。因此,您可以对以下对象进行API调用:

https://query1.finance.yahoo.com/v1/finance/lookup?formatted=true&lang=en-US&region=US&query=A*&type=equity&count=10000&start=0&scroll=true
https://query1.finance.yahoo.com/v1/finance/lookup?formatted=true&lang=en-US&region=US&query=A*&type=equity&count=10000&start=1&scroll=true
https://query1.finance.yahoo.com/v1/finance/lookup?formatted=true&lang=en-US&region=US&query=A*&type=equity&count=10000&start=2&scroll=true
...
etc.

相关问题