首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yahoo finance.yahoo.com/quotes正在重定向

Yahoo finance.yahoo.com/quotes正在重定向
EN

Stack Overflow用户
提问于 2017-05-02 01:37:07
回答 3查看 1.9K关注 0票数 1

我使用https://finance.yahoo.com/quotes/..。用于股票报价和期权数据。在Safari浏览器中查看时,它仍然可以很好地工作。我还将它作为NSURLSession dataTaskWithUrL引入到Objective C应用程序中。上周(大约2017年4月28日),它开始通过调用willPerformHTTPRedirection来强制重定向:但是重定向循环到自己,并生成"too many redirects“错误。

有谁有解决这个问题的办法吗?

EN

回答 3

Stack Overflow用户

发布于 2017-05-07 00:20:04

我发现,雅虎财经将他们的网站地址格式从(4/1) "http://finance.yahoo.com/q/hp?s=AAPL&g=w“改为(4/8) "http://finance.yahoo.com/quote/AAPL/history?interval=1wk

然后,在4/21,每周历史数据不同地导入,不包括一些广告行之间的股票代码和定价到“日期/开盘...调整关闭”标题以及从日期到成交量的列数。

在5/5,雅虎财经历史数据将不会通过VBA编程打开。其他金融网站,如MSN,Google,Market Watch和Invetopedia继续使用相同的VBA代码打开。

最后,当我将上面列出的较新的Yahoo链接粘贴到电子表格中,然后单击该链接时,网页将重定向到Apple的常规摘要站点,而不是历史数据选项卡。

我将尝试其他几行代码,但在此之后,将考虑更改为Investopedia。

票数 0
EN

Stack Overflow用户

发布于 2017-06-07 02:34:57

这是我最终想出的解决方案:

在原始NSURLRequest中,将其设置为NSURLMutableRequest并添加:

代码语言:javascript
复制
[theRequest setValue:@"Mozilla......." forHTTPHeaderField:@"User-Agent"];

这种“欺骗浏览器”的方式通常不需要重定向。但有时会有重定向。因此,我还添加了以下方法:

代码语言:javascript
复制
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task willPerformHTTPRedirection:(NSHTTPURLResponse *)redirectResponse newRequest:(NSURLRequest *)request completionHandler:(void (^)(NSURLRequest *))completionHandler{

在完成处理程序中,我检查task.currentRequest valueForHTTPHeaderField:,将其设置为不同的浏览器,并使用不同的浏览器生成新的NSURLRequest。它似乎起作用了。

票数 0
EN

Stack Overflow用户

发布于 2017-06-05 23:51:33

基于另外两个人的工作,我似乎有了一个解决这个问题的方法。从Yahoo下载历史数据的问题其实有两个方面:

issue

  • Establishing
  1. 重定向cookie/crumb组合有效。

使我能够继续使用Excel电子表格和相关VBA代码的解决方案基于:

这是丹尼斯·李的作品,他演示了如何提取/

的Tim Hall的作品

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43723597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档