如何使用 Javascript 或 jQuery(跨域)CORS(无 api)从另一个网站提取数据 [英] How to pull data from another website using Javascript or jQuery (cross-domain) CORS (no api)

查看:51
本文介绍了如何使用 Javascript 或 jQuery(跨域)CORS(无 api)从另一个网站提取数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目标是获取电报群的成员总数.这个数字有一个唯一的 css 标识符,应该可以通过 jsoup 或其他方法获取.

使用电报 api 需要身份验证令牌,并使用这种方法我试图解决可能最终在其他地方使用的任何 api 密钥,因为此代码将用于开源项目并且最终可能导致密钥被泄露.

我正在尝试从此网站提取数据:https://api.allorigins.win/raw?url=https://tgstat.com/en/channel/@addStickers

总组成员的 CSS 选择器是 .columns.large-2.medium-4.small-6.margin-bottom15 >div >.align-center >#text

我使用的代码有点过时了.

我知道我做错了什么只是不确定.任何帮助表示赞赏.

它不必与 fetch 一起使用,可以与 jQuery 一起使用 .. 本质上我只需要获取要通过 document.getElementById 显示的纯 html 格式的成员数量

解决方案

我认为这是要使用的正确代码,但它只是没有根据需要提取成员数量.它绕过了 CORS,但是我不知道如何为成员选择正确的 css,所以什么也没有发生......

<script type="text/javascript">var ExternalURL = "tgstat.com/en/channel/@addStickers";//此地址不得包含任何前导http://";var ContentLocationInDOM = ".columns.large-2.medium-4.small-6.margin-bottom15 >div >.align-center >#文本";//如果您尝试从页面获取子内容,请指定CSS 样式";此处使用 jQuery 语法,否则将其设置为null";$(document).ready(loadContent);函数加载内容(){var QueryURL = "https://api.codetabs.com/v1/proxy/?quest="+ 外部网址;$.getJSON(QueryURL, function(data){if (data && data != null && typeof data == "object" && data.contents && data.contents != null && typeof data.contents ==字符串"){数据 = data.contents.replace();if (data.length > 0){if (ContentLocationInDOM && ContentLocationInDOM != null && ContentLocationInDOM != null"){$('#telegramMembers').html($(ContentLocationInDOM, data));}别的{$('#telegramMembers').html(data);}}}});}

任何建议都会有所帮助.

The goal is to get the total number of members in the telegram group. This number has a unique css identifier and should be able to get pulled via jsoup or another method..

Using telegram api requires auth tokens and using this method I am trying to work around any api keys that could end up getting used elsewhere as this code will be used on an open source project and could have the keys end up being leaked.

I am trying to pull data from this website: https://api.allorigins.win/raw?url=https://tgstat.com/en/channel/@addStickers

The CSS selector for the total group members is .columns.large-2.medium-4.small-6.margin-bottom15 > div > .align-center > #text

The code I am using is a bit outdated.

<script type="text/javascript">



 fetch('https://api.allorigins.win/raw?url=https://api.allorigins.win/raw?url=https://tgstat.com/en/channel/@addStickers').then(function(response) {
 response.html().then(function(members){
    
    members.forEach(function(member){
      document.getElementById("tg-members").innerHTML = (.columns.large-2.medium-4.small-6.margin-bottom15 > div > .align-center > #text)
    });
  });
}).catch(err => console.error(err));


 </script>

I know I am doing something wrong just not sure exactly. Any help is appreciated.

It does not have to be with fetch, could be with jQuery.. essentially I just need to get the number of members in plain html format to be displayed via document.getElementById

解决方案

I think this is the right code to be using, however it just does not pull the number of members as needed. It bypasses the CORS however I don't know how to select the right css for the members so nothing is happening...

<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
   var ExternalURL = "tgstat.com/en/channel/@addStickers"; // This address must not contain any leading "http://"
   var ContentLocationInDOM = ".columns.large-2.medium-4.small-6.margin-bottom15 > div > .align-center > #text"; // If you're trying to get sub-content from the page, specify the "CSS style" jQuery syntax here, otherwise set this to "null"

    $(document).ready(loadContent);
   function loadContent()
   {
      var QueryURL = "https://api.codetabs.com/v1/proxy/?quest=" + ExternalURL;
      $.getJSON(QueryURL, function(data){
         if (data && data != null && typeof data == "object" && data.contents && data.contents != null && typeof data.contents == "string")
         {
            data = data.contents.replace();
            if (data.length > 0)
            {
               if (ContentLocationInDOM && ContentLocationInDOM != null && ContentLocationInDOM != "null")
               {
                  $('#telegramMembers').html($(ContentLocationInDOM, data));
               }
               else
               {
                  $('#telegramMembers').html(data);
               }
            }
         }
      });
   }
</script>

any suggestions would be helpful.

这篇关于如何使用 Javascript 或 jQuery(跨域)CORS(无 api)从另一个网站提取数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆