【问题标题】:Access dynamic data from website从网站访问动态数据
【发布时间】:2015-11-21 22:04:22
【问题描述】:

我正在开发一个从外部 URL 获取数据的应用程序。我用 Swift 创建了这个并且已经达到了一个症结所在。我是一名新程序员..希望你们能帮助我朝着正确的方向前进。

查看网站的 HTML,我需要的数据正在使用 JavaScript 显示在响应式表格中。任何帮助或建议将不胜感激。

另外,我在页面资源的 jQuery 脚本中找到了这些 cmets。不知道是什么意思。

无法执行此操作,因为包括 ASP.NET 在内的多个应用程序跟踪 通过 arguments.caller.callee 和 Firefox 的堆栈如果 您尝试通过“使用严格”调用链进行跟踪。

【问题讨论】:

  • 这太模糊了,无法回答。但是,我可以告诉您,如果您希望您的 Web 应用程序数据在您的 Swift 应用程序中可用,您将需要在 Web 应用程序之上创建/提供一个 api,以便 Swift 向其发送请求。理论上,您的 api 会简单地返回当前填充响应表的数据。
  • @Jbird 这仅适用于您控制网络应用程序的情况。您无法在您无法控制的网站中创建 API。
  • 这听起来像是典型的网络抓取工作。建议你结合使用 Watin 来控制浏览器和 CSQuery 来以 jQuery 的方式提取内容
  • 我使用 KimonaLabs.com 创建了一个 API,它输出 JSON,并且可以获取某些数据以在应用程序中很好地呈现(通过 swifyJSON)。我正在寻找一种更通用的方法来从外部网站的特定文件夹中“提取数据”。

标签: javascript jquery asp.net swift parsing


【解决方案1】:

查看网站的 HTML,我需要的数据正在使用 javascript 显示在响应式表格中。任何帮助或建议将不胜感激。

  • 通过浏览器开发者工具检查外部 URL 生成的 AJAX 请求
  • 找到用于返回表中使用的 JSON 数据的那个
  • 在 Swift 代码中调用 JSON URL 而不是 HTML URL

不知道是什么意思。

无法执行此操作,因为包括 ASP.NET 在内的多个应用程序通过 arguments.caller.callee 跟踪堆栈,如果您尝试通过“use strict”调用链进行跟踪,Firefox 会死机

对于严格模式,使用error.stack 替代arguments.caller.callee 来生成堆栈跟踪。例如:

function foo() { 
"use strict";
try
  {
  console.log(arguments.caller.callee);
  }
catch(e)
  {
  console.log(e.stack);
  }
} 

foo();

参考文献

【讨论】:

    猜你喜欢
    • 2016-11-26
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多