【问题标题】:parse HTML table from third party server (jQuery or PHP)从第三方服务器(jQuery 或 PHP)解析 HTML 表
【发布时间】:2014-10-25 21:55:20
【问题描述】:

我在第三方服务器上有一个包含运动结果的 HTML 表格,我想将其解析为 JSON 或 XML,以便从中获取值...

我更喜欢用 jQuery 来做这件事,并且已经玩过 $.ajax 但我没有让它运行:/

我还考虑过在我的服务器上运行一个 PHP 脚本并使用 file_get_contents() 执行某些操作并将结果解析为 JSON - 没有成功...

任何人都有一个想法 - 做我想做的最好的解决方案是什么?我需要发人深省的冲动;)

我的 jQuery 尝试:

$.ajax({
    dataType: "jsonp",
    url: "....",
    success: function(data) {
        console.log(data);
    },
    error: function() {
        console.log('error');
    }
});

遇到错误:

【问题讨论】:

  • 对于跨站点,最好使用您提到的代理脚本。从字面上看,它需要做的就是echo file_get_contents($url),如果你愿意,你可以用 Javascript 完成剩下的事情。但听起来您正在尝试将 HTML 解析为 XML 或 JSON。你不能那样做!
  • @rjdown 好吧,如果我结合使用 PHP 和 Javascript,您认为从 html 表中获取数据的最佳方法是什么?
  • 您应该能够在您从 PHP 收到的 HTML 上使用标准 jquery 函数。例如$(data).filter('table')
  • @rjdown 哦,是的!那很好!谢谢大佬!
  • 没问题。添加为其他人的答案

标签: php jquery xml json parsing


【解决方案1】:

根据 cmets:

对于跨站内容,使用 PHP 制作代理脚本。这一切需要做的就是抓取远程内容并将其回显。

然后您的 ajax 请求将指向此脚本,您将能够使用标准 jQuery 函数解析响应,就好像它是一个普通页面一样,例如$(data).filter('table');

【讨论】:

    【解决方案2】:

    您的“数据类型”错误?不应该是“html”或“json”,因为我看到您正在接收 HTML 内容。

    【讨论】:

    • 如果我使用 'html' 或 'json' 会出现错误,因为目标服务器上禁用了跨域资源共享...
    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    • 2012-06-08
    相关资源
    最近更新 更多