【问题标题】:Javascript: get data displayed from another urlJavascript:从另一个网址获取显示的数据
【发布时间】:2013-02-23 14:32:14
【问题描述】:

我想知道是否可以从另一个网站获取一些数据以将其显示在我的网站上。一个很好的例子可以是 alexa.com。例如,我需要在我的页面上的 div 中显示 Alexa 流量排名和声誉,因此每次 Alexa 更改其数据时都会动态更改。

感谢您的帮助。

【问题讨论】:

  • 你不能使用 iframe 吗?
  • 不,在这种情况下我只需要数据,数字。

标签: javascript


【解决方案1】:

yahoo yql...(而不是 php?代理服务器端脚本)..

我偷偷怀疑您不拥有/控制外部链接站点,因此从不同站点获取内容将受到跨域安全限制(对于现代浏览器)。

因此,为了重新获得“用户的权力”,只需使用http://query.yahooapis.com/
jQuery 并不是绝对需要的。

示例 1:
使用类似 SQL 的命令:

select * from html 
where url="http://stackoverflow.com" 
and xpath='//div/h3/a'

以下链接将抓取 SO 以获取最新问题(绕过跨域安全公牛$#!7):
http://query.yahooapis.com/v1/public/yql?q=select%20title%20from%20html%20where%20url%3D%22http%3A%2F%2Fstackoverflow.com%22%20and%0A%20%20%20%20%20%20xpath%3D%27%2F%2Fdiv%2Fh3%2Fa%27%0A%20%20%20%20&format=json&callback=cbfunc

如您所见,这将返回一个 JSON 数组(也可以选择 xml)并调用回调函数:cbfunc

确实,作为“奖励”,您每次不需要将数据从“标签汤”中正则表达式时也save a kitten

你听到你内心的疯狂小科学家开始咯咯地笑了吗?

然后查看this answer 了解更多信息(不要忘记它是 cmets 以获得更多示例)。

祝你好运!

【讨论】:

    【解决方案2】:

    一种方法是向 Alexa.com 网站发出 ajax 请求,一旦您收到所有的 html,就可以使用 jquery 或其他东西抓取它以获得您想要的 div。 感觉有点脏,但它是获得你想要的东西的简单方法。虽然这是假设他们的页面内容不是动态加载的。

    编辑:查看更多信息:Request external website data using jQuery ajax

    【讨论】:

    • 所以我不能只说去alexa页面上的特定ID或类并获取其中显示的数据吗?你能写一个例子吗?
    • 您可以使用正则表达式并找到您想要的。或者较慢的方法是使用抓取的标记创建 DOM,然后使用 jquery 选择您想要的内容。 (我认为这种方法会比正则表达式慢)
    • 也许还有另一种语言,比如 PHP 或者更适合这项任务的语言?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多