【问题标题】:Javascript code to query an API and return values用于查询 API 并返回值的 Javascript 代码
【发布时间】:2019-12-16 17:00:34
【问题描述】:

我正在开发一个 chrome 插件,如果它位于前 100,000 个站点中,我将不得不使用浏览器上的当前 URL 查询 Alexa API。 我正在使用 Javascript - 我有一个 Python 解决方案,但我试图在 Javascript 中实现这一点。

我试过xmlhttprequest,我不知道我的代码是否正确,看起来这就是实现它的方法。

我是 Javascript 新手,希望能提供注释代码。

//--------我的JAVASCRIPT JABBLE-----//

var urlDomain = window.location.hostname;
var xhr = new XMLHttpRequest();
 xhr.open("GET", "http://data.alexa.com/data?cli=10&dat=s&url=" + urlDomain, false).read(), "xml").find("REACH")['RANK']
    except TypeError:
        return -1
    rank = int(rank)
    return 1 
    if rank < 100000 
    else 0


//-------THE WORKING PYTHON SOLUTION-----//

def web_traffic(url):
    try:
        rank = \
            bs4.BeautifulSoup(urllib.urlopen("http://data.alexa.com/data?cli=10&dat=s&url=" + url).read(), "xml").find("REACH")['RANK']
    except TypeError:
        return -1
    rank = int(rank)
    return 1 if rank < 100000 else 0

该项目是一个钓鱼页面检测插件,如果 URL 不在前 100,000 则返回 -1,如果 URL 在前 100,000 则返回 1,如果 URL 不在前 100,000 则返回 0网站也。

【问题讨论】:

  • 那个 API 端点似乎不再工作了。无论输入如何,它总是返回“Okay”,例如data.alexa.com/data?cli=10&dat=s&url=http://…
  • JavaScript 部分目前不是有效的 JavaScript。在尝试弄清楚如何查询 API 之前,我建议您先熟悉一下该语言。 This page 有语言和语法的基本概述,或者有this complete guide
  • 网上也有各种使用 JavaScript 获取数据的指南,例如this one。由于您正在编写扩展程序,因此无需担心支持旧浏览器,因此使用现代的fetch() API 而不是XMLHttpRequest 将是最简单的。
  • @ecraig12345 我是 JavaScript 新手,我知道代码无效,这就是为什么我称它为 jabble 哈哈...感谢您提供的资源链接,它们肯定会很有用。但如果我能得到一个有效的代码,让我完成 chrome 扩展的那部分。
  • @chris,我刚刚注意到 alexa 不再提供免费的了......我刚刚检查了一些开放 dns 的替代品......而且我还遇到了一个相当老的 alexa 转储...... s3.amazonaws.com/alexa-static/top-1m.csv.zip 打开的 dns 转储可以在这里找到 s3-us-west-1.amazonaws.com/umbrella-static/index.html 我必须下载这些,转换并解析为 Jason/XML

标签: javascript jquery ajax xml


【解决方案1】:

您可以使用 jQuery AJAX 来实现相同的功能:

(导入 jQuery.js!)

$.ajax({
  method: 'GET',
  url: DOMAIN,
  timeout: 15000,
  dataType: 'xml',
  success: data => {
      // success
  },
  error: err => {
      // error
  }

})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    相关资源
    最近更新 更多