使用JSL从网络获取数据<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
看完这个讨论后(使用 JSL 从网络上抓取数据并预测足球胜利! ) - 我对可用于增强我的 JSL 技能的在线数据集感到非常兴奋。 然而,在尝试了这篇文章中提供的代码后,我并没有取得太大的成功。 我试图写信给作者,但仍在等待回复。 如果有人以前这样做过(有人可以吗),请展示如何从网络获取数据。
可以说例如 我想获取 Twitter 的股价、52 周最低价、52 周最高价和当前价格 - 我如何在 JSL 中做到这一点。
任何意见都将受到赞赏。
最好的
乌代
回复:使用JSL从网络获取数据特蕾莎·古德伊尔:感谢特蕾莎分享脚本和分析。 我认为在这种情况下困扰我的主要问题是我遇到了与网络相关的问题,正如 Craige 和 MSharp 之前评估的那样。 每当我尝试通过 JSL 访问网络时,我的网络就会将我重定向出网络。 一旦我能够了解数据 - 开始查看您的工作并学习有用的内容并融入这些概念将是一次很棒的经历
回复:使用JSL从网络获取数据嗨乌代。
在参加了圣地亚哥的研讨会后,我也对从网络上获取足球数据感兴趣。我创建了附加脚本并从 espn.com 获取了四分卫数据。我发现只需将链接替换为相应年份即可获取历史数据。获得历史数据并将其连接起来后,我进行了回归分析,发现“传球码数”是四分卫在 ESPN 顶级四分卫排行榜上排名的最大贡献者。
我在此之后模拟了其他分析。希望这可以帮助。谢谢。
回复:使用JSL从网络获取数据我已经超出了我的深度。从消息(其中包括一条说联系您的支持团队)来看,我认为这是防火墙/代理问题。看:
http://stackoverflow.com/questions/2408964/why-am-i-getting-authentication-redirect-to-virtual-host-error
(我认为这可能是在问正确的问题)
回复:使用JSL从网络获取数据上面的关键信息:
重定向(authentication_redirect_to_virtual_host)
您将被重定向到身份验证虚拟主机。
如需帮助,请联系您的网络支持团队。
通过谷歌进行快速搜索,一切似乎都指向代理问题。这是您公司网络支持团队应该能够轻松解决的问题。你联系过他们吗?
我个人可能会尝试在您可能拥有的任何 Web 浏览器中手动设置代理服务器信息,因为您使用的是 Windows,所以我会从 IE 开始。更改 Internet Explorer 中的代理服务器设置 - Windows 帮助
但是,无论如何,这都需要您联系网络支持团队,因为我假设您不知道公司的代理设置。
回复:使用JSL从网络获取数据克雷格@JMP:
text = "HTTP/1.1 302 找到~0D~0A位置: http://tmp1mdf01-fpx01/?cfru=aHR0cDovL2ZpbmFuY2UueWFob28uY29tL2VjaGFydHM/cz1UV1RSI3siYWxsb3dDaGFydFN0YWNraW5nIjp0cnVlfQ==~0D~0ACache-Control:无缓存~0D~0A语法:无缓存~0D~0A内容类型:text/html; charset=utf-8~0D~0A连接:关闭~0D~0A内容长度:624~0D~0A~0D~0A~0A重定向~0A~ 0A~0A~0A
~0A~0A
~0A<表格边框=0 cellPadding=1 width=~2280%~22>~0A~0A~0A重定向(authentication_redirect_to_virtual_host)~0A
~0A
~0A~0A~0A~0A~0A您将被重定向到身份验证虚拟主机.~0A~0A~0A~0A~0A~0A~0A ~0A~0A~0A
~0A如需帮助,请联系您的网络支持团队。~0A~0A< /TD>~0A~0A
~0A~0A~0A";{“关闭”,“确定”}
这就是我得到的
回复:使用JSL从网络获取数据302错误是重定向。我不知道你为什么会看到这个;这可能是防火墙行为。
如果您想尝试解决这个问题,请运行此脚本,一次一行,并查看 JMP 日志中每行产生的内容。
网站=“finance.yahoo.com”;
网址=“ http://finance.yahoo.com/echarts?s=TWTR# {\!"allowChartStacking\!":true}";
tCall = Socket();
tCall << 连接( 站点, "80" );
tCall << Send( Char To Blob( "GET " || url || " HTTP/1.0~0d~0a~0d~0a", "ASCII~HEX" ) );
tMessage = tCall << Recv( 1000 );
text = Blob To Char( tMessage[3], "ASCII~HEX" );
显示(文本);
tCall << 关闭();
连接应该说: {“连接”,“确定”}
发送应该说: {"发送", "ok", Char To Blob( "", "ascii~hex" )}
接收应该说: {“接收”,“确定”,字符到 Blob(
“HTTP/1.0 200 好~0D~0AX-帧选项:SAMEORIGIN~0D~0AX-内容类型选项:nosniff~0D~0AX-XSS-保护:1; mode=block~0D~0AContent-Type: text/html~0D~0ASet-Cookie: B=c3r14p5bh4hr3&b=3&s=p2;过期=2018 年 4 月 16 日星期六 14:08:35 GMT;路径=/;域名=.yahoo.com~0D~0AD日期:2016年4月16日星期六14:08:35 GMT~0D~0A服务器:ATS~0D~0AVary:X-Ssl~0D~0AVia:http/1.1 media-border115.global。 media.bf1.yahoo.com(ApacheTrafficServer [cMsSf]),http/1.1 media-router4.prod.media.bf1.yahoo.com(ApacheTrafficServer [cMsSf]),http/1.1 r25.ycpi.dcb.yahoo.net( ApacheTrafficServer [cMsSf ])~0D~0AAge: 0~0D~0AY-跟踪: BAEAQAAAAACXg0qXxLFf4AAAAAAAAAAAw514XKmQNkkAAAAAAAAAAAAFMJqpyGJPAAUwmqnLTak2C_LwAAAAAA--~0D~0A~0D~0A<~21DOCTYPE html>~0A~0A<头>~0A <~21- - 可定制:任何你期望的东西。-->~0A TWTR 互动股票图表 |雅虎~21 Inc.股票 - 雅虎~21财经~0A~0A <meta http-equiv="~22X-UA-Compatible~22" content="~22IE=edge,chrome=1~22" />~0A <元http-equiv=~22Content-Type~22 content=~22text/html; charset=UTF-8~22 />~0A~0A~0A~0A ~0A “ascii~十六进制” )}
如果您没有收到 200 OK 响应,也许您会获得有关 302 响应的一些信息。
回复:使用JSL从网络获取数据是的,自从您在论坛上发帖以来,我认为您已连接到互联网
就像我说的,我不确定问题是什么。我只是尝试正常的故障排除技术:
开盘、收盘 JMP。
重新启动计算机。
清除缓存。
重新安装 JMP?您可以更新到 JMP 12.2。
或者您可以联系support@jmp.com 。他们也许能够提供额外的支持。
回复:使用JSL从网络获取数据@msharp
我已连接到互联网。
我可以在浏览器中打开页面,
我正在使用 JMP 12
我有Windows。
乌代
回复:使用JSL从网络获取数据我不能说你的问题是什么,但所有这些命令都对我有用。我将从基本的故障排除步骤开始。您已连接到互联网吗? 尝试将网站复制并粘贴到浏览器中,是否会显示一个页面? (注意:我会尝试第二页,我必须转义第一个网址中的引号。)
您运行的是哪个版本的 JMP? 如果是旧版本,是不是不支持该功能?你用的是mac还是windows?
回复:使用JSL从网络获取数据@msharp :
我似乎遇到了与之前尝试使用“打开”命令时相同的错误。 这和设置有关系吗?

回复:使用JSL从网络获取数据您可以通过转到“查看”->“加载项...”来访问该加载项的 JSL,然后选择 Yahoo Fetcher 加载项并单击“主文件夹”链接。

它将在资源管理器(如果您使用的是 Mac,则为 Finder)中打开该文件夹。 然后您可以检查加载项运行的 .JSL 文件。
-杰夫
编辑添加:姆夏普打败了我。
回复:使用JSL从网络获取数据要访问加载项背后的代码,请转至查看>>加载项...>>选择所选加载项,然后选择主文件夹旁边的链接。这将带您进入本地硬盘上存储所有加载项脚本和文件的文件夹。
编辑:我可能已经打败了杰夫,但他有一张可爱的图片可以帮助澄清。
回复:使用JSL从网络获取数据因此,以雅虎财经为例,我向您展示两种通用方法。如果您访问任何网站,您只需使用 open 命令并指定 HTML 表即可。这需要将数据存储在 HTML 表中。
下面,我向您展示 yahoo Finance table.csv api。在末尾添加 s=TWTR 将为所有 Twitter 数据创建一个 CSV 文件,然后您可以在 JMP 中使用。如果您想了解有关 api 的更多信息,此页面会很有帮助。
雅虎财经(隐藏)API |伊多·格林
//只是浏览网页,就能得到这些表
打开( ” http://finance.yahoo.com/echarts?s=TWTR# {\!"allowChartStacking\!":true}" , HTML 表格( 2 )) ;
打开( ” http://finance.yahoo.com/q;_ylt=AwrXgiOYWBFXxGUAYiiTmYlQ;_ylu=X3oDMTE0bWJta2VyBGNvbG8DZ3ExBHBvcwMxBHZ0aWQDVklEUUJDS18xBHNlYwNzYw--?s=TWTR ” , HTML 表格( 2 )) ;
打开( ” http://finance.yahoo.com/q;_ylt=AwrXgiOYWBFXxGUAYiiTmYlQ;_ylu=X3oDMTE0bWJta2VyBGNvbG8DZ3ExBHBvcwMxBHZ0aWQDVklEUUJDS18xBHNlYwNzYw--?s=TWTR ” , HTML 表格( 3 )) ;
//这是yahoo Finance api接口
打开( ” http://ichart.finance.yahoo.com/table.csv?s=TWTR ” ) ;
回复:使用JSL从网络获取数据你好杰夫,
谢谢 。 我已经下载了插件。我的目标是能够学习和理解如何在 JSL 中做到这一点,但我不知道如何利用 addin 背后的代码。 另外 - 该插件似乎只是在浏览器中打开股票信息,而不是将数据导入 JMP(这就是我想要做的)。 我希望从这些公共存储库导入数据,以提高我在 JSL 中的分析技能和编码技能。
最好的
乌代
回复:使用JSL从网络获取数据这雅虎财经获取器JMP 插件将是一个很好的起点。
-杰夫
回复:使用JSL从网络获取数据姆夏普,
我看过几个选项:
1.条形图.com
2.雅虎财经
3.谷歌财经
但我不知道我们是否需要 ping 这些网站的 api,或者它们是否可以作为 HTML 表进行访问。
最好的
乌代
回复:使用JSL从网络获取数据从网络获取数据的方法有很多。最佳方法取决于数据源。在您发布的示例中,用户只需使用 Open() 命令并告诉它要提取 HTML 中的哪个数据表。这是迄今为止最简单的,但并不总是可行。一些网站(例如 Twitter)已经设置了 API。这种方法稍微复杂一些,但功能却极其强大。
你做了你的研究吗?您知道从哪里可以获得股票价格信息吗?数据来源是什么?