B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 15|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

AiWorkÈí¼þÏÂÔØÀ¶×àÔÆOCRÎļþµ½Îļþ¼Ð

[¸´ÖÆÁ´½Ó]

821

Ö÷Ìâ

826

Ìû×Ó

6560

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
6560
Ìøתµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
Õâ¶Î´úÂëÊÇÒ»¸öÓÃÓÚ´ÓÀ¶×àÔÆ£¨Lanzou£©ÏÂÔØÎļþµÄ×Ô¶¯»¯¹¤¾ß½Å±¾£¬Ö÷Òª»ùÓÚJavaScript±àд£¬²¢ÇÒÊÇÔÚÒ»¸ö°²×¿×Ô¶¯»¯»·¾³ÖÐÔËÐеģ¬ÀýÈçʹÓÃAiWorkÕâÑùµÄ×Ô¶¯»¯IDE¡£´úÂëÖж¨ÒåÁËÒ»¸öÖ÷ÒªµÄº¯ÊýdownloadLanzouFile£¬Ëü½ÓÊÜÈý¸ö²ÎÊý£ºÎļþµÄURLµØÖ·url£¬±£´æÎļþµÄ·¾¶saveFilePath£¬ÒÔ¼°×î´óÖØÊÔ´ÎÊýmaxRetries£¨Èç¹ûδÌṩ£¬º¯ÊýĬÈÏÉèÖÃΪ5´Î£©¡£
´úÂëµÄÖ÷Òª¹¦ÄܺͲ½ÖèÈçÏ£º
  • ³õʼ»¯ºÍÅäÖãº

    • ¶¨ÒåÁËÀ¶×àÔƵı¸ÓÃÓòÃûÁÐ±í£¬ÒÔ±ãÔÚÓöµ½Ä³¸öÓòÃûÎÞ·¨·ÃÎÊʱ½øÐÐÇл»¡£
    • ¶¨ÒåÁËÒ»¸ösleepº¯ÊýÓÃÓÚÏß³ÌÐÝÃߣ¬ÒÔ±ãÔÚÖØÊÔÖ®¼äµÈ´ýÒ»¶Îʱ¼ä¡£
    • ¶¨ÒåÁËÁ½¸ö¸¨Öúº¯Êý£ºgetWaitTimeÓÃÓÚ¼ÆËãÿ´ÎÖØÊÔʱµÄµÈ´ýʱ¼ä£¬²ÉÓÃÖ¸ÊýÍ˱ÜËã·¨£»formatTimeÓÃÓÚ½«ºÁÃëÊý¸ñʽ»¯Îª¸üÒ׶ÁµÄʱ¼ä¸ñʽ¡£
  • ÏÂÔØÖ÷Âß¼­£º

    • ʹÓÃÒ»¸öforÑ­»·À´ÊµÏÖÏÂÔصÄÖØÊÔ»úÖÆ£¬Ã¿´ÎÓöµ½´íÎóʱ»áÔö¼ÓÖØÊÔ´ÎÊý¡£
    • ÔÚÿ´ÎÖØÊÔ֮ǰ£¬Í¨¹ýsleepº¯ÊýµÈ´ýÒ»¶Îʱ¼ä£¬Ê±¼ä»áËæ×ÅÖØÊÔ´ÎÊýÔö¼Ó¶øÔö¼Ó¡£
    • ʹÓÃokHttp¿âÀ´·¢ËÍHTTPÇëÇó£¬Ê×ÏÈ»ñÈ¡³õʼҳÃæÄÚÈÝ¡£
    • ½âÎö³õʼҳÃæÒÔ»ñÈ¡Ìøת·¾¶£¬²¢·ÃÎʶþ¼¶Ò³ÃæÒÔ»ñÈ¡ÎļþµÄÇ©Ãû²ÎÊýsign¡£
    • ͨ¹ý½âÎö¶þ¼¶Ò³ÃæµÄHTMLÄÚÈÝ£¬»ñÈ¡ÓÃÓÚÏÂÔØÎļþµÄAJAXÇëÇóURL¡£
    • ÅäÖÃHTTPÇëÇóÍ·£¬Ä£Äâä¯ÀÀÆ÷ÐÐΪ£¬ÒÔ»ñÈ¡ÕýÈ·µÄÏÂÔصØÖ·¡£
    • ¹¹ÔìPOSTÇëÇóµÄÊý¾Ý£¬°üÀ¨Ç©ÃûÐÅÏ¢µÈ£¬·¢ËÍPOSTÇëÇóÒÔ»ñÈ¡ÏÂÔصØÖ·¡£
    • ÏÂÔØÎļþ²¢Í¨¹ýformatFileSizeº¯Êý¸ñʽ»¯Êä³öÎļþ´óС¡£
    • ¼ì²éÎļþ´óСÊÇ·ñÒ쳣С£¬ÒÔÅжÏÎļþÊÇ·ñÏÂÔØÍêÕû¡£
  • ´íÎó´¦Àí£º

    • Èç¹ûÔÚÏÂÔعý³ÌÖÐÓöµ½ÈκδíÎó£¨ÈçÎļþ²»´æÔÚ¡¢·þÎñÆ÷·µ»Ø´íÎóÒ³Ãæ¡¢ÎÞ·¨½âÎöJSONµÈ£©£¬»á±»²¶»ñ²¢Êä³ö´íÎóÐÅÏ¢¡£
    • Èç¹ûÔÚ×î´óÖØÊÔ´ÎÊýÄÚÈÔδÄܳɹ¦ÏÂÔØÎļþ£¬º¯Êý½«·µ»Øfalse£¬±íʾÏÂÔØʧ°Ü¡£
  • ¸ñʽ»¯Îļþ´óС£º

    • formatFileSizeº¯ÊýÓÃÓÚ½«Îļþ´óС´Ó×Ö½Úת»»ÎªKB¡¢MB»òGB£¬²¢±£ÁôÁ½Î»Ð¡Êý¡£
  • ʾÀýʹÓãº

    • ÌṩÁËÒ»¸öʹÓÃʾÀý£¬Õ¹Ê¾ÁËÈçºÎµ÷ÓÃdownloadLanzouFileº¯ÊýÀ´ÏÂÔØÎļþ£¬²¢¸ù¾Ý·µ»Ø½á¹ûÅжÏÎļþÊÇ·ñ³É¹¦ÏÂÔØ¡£

  1. /*
  2.    »¶Ó­Ê¹ÓÃAiWork°²×¿×Ô¶¯»¯IDE

  3. */

  4. // ¶¨ÒåÖ÷º¯Êý
  5. function downloadLanzouFile(url, saveFilePath, maxRetries) {
  6.     // ÉèÖÃĬÈϲÎÊý
  7.     if (maxRetries === undefined) {
  8.         maxRetries = 5;  // Ôö¼ÓĬÈÏÖØÊÔ´ÎÊý
  9.     }
  10.    
  11.     var http = new okHttp();
  12.     var domains = ["wwt.lanzouu.com", "wwt.lanzoui.com", "wwt.lanzoux.com"];  // ±¸ÓÃÓòÃû
  13.     var currentDomain = domains[0];
  14.     var startTime = new Date().getTime();
  15.    
  16.     function sleep(ms) {
  17.         java.lang.Thread.sleep(ms);
  18.     }
  19.    
  20.     // Ö¸ÊýÍ˱ÜËã·¨¼ÆËãµÈ´ýʱ¼ä
  21.     function getWaitTime(retryCount) {
  22.         return Math.min(2000 * Math.pow(1.5, retryCount), 10000);  // ×µÈ´ý10Ãë
  23.     }
  24.    
  25.     function formatTime(ms) {
  26.         if (ms < 1000) return ms + "ºÁÃë";
  27.         return Math.floor(ms / 1000) + "Ãë";
  28.     }
  29.    
  30.     for (var retryCount = 0; retryCount < maxRetries; retryCount++) {
  31.         if (retryCount > 0) {
  32.             var waitTime = getWaitTime(retryCount);
  33.             printl("µÚ" + (retryCount + 1) + "´Î³¢ÊÔÏÂÔØ...(µÈ´ý" + formatTime(waitTime) + ")");
  34.             
  35.             // ÿ´ÎÖØÊÔʱ³¢ÊÔÇл»ÓòÃû
  36.             currentDomain = domains[retryCount % domains.length];
  37.             printl("Çл»µ½ÓòÃû: " + currentDomain);
  38.             
  39.             sleep(waitTime);
  40.         }
  41.         
  42.         try {
  43.             printl("¿ªÊ¼ÏÂÔعý³Ì...");
  44.             
  45.             // »ñÈ¡³õʼҳÃæ
  46.             printl("ÕýÔÚ»ñÈ¡³õʼҳÃæ...");
  47.             var processedUrl = url.replace(/wwt\.lanzo[a-z]{1,2}\.com/, currentDomain);
  48.             var r = http.get(processedUrl);
  49.             
  50.             // ¼ì²éÊÇ·ñ°üº¬´íÎóÐÅÏ¢
  51.             if (r.includes("Îļþ²»´æÔÚ") || r.includes("Òѱ»É¾³ý")) {
  52.                 throw "Îļþ²»´æÔÚ»òÒѱ»É¾³ý";
  53.             }
  54.             
  55.             // »ñÈ¡Ìøת·¾¶
  56.             var regex = /\/fn\?[\w-]+/g;
  57.             var fnPathMatch = r.match(regex);
  58.             if (!fnPathMatch) {
  59.                 throw "ÎÞ·¨»ñÈ¡Ìøת·¾¶";
  60.             }
  61.             var fnPath = fnPathMatch[0];
  62.             printl("»ñÈ¡Ìøת·¾¶:", fnPath);

  63.             // »ñÈ¡¶þ¼¶Ò³Ãæ
  64.             var r2 = http.get("https://" + currentDomain + fnPath);
  65.             printl("ÒÑ»ñÈ¡¶þ¼¶Ò³Ãæ");
  66.             
  67.             // ¼ì²é¶þ¼¶Ò³ÃæÊÇ·ñÓÐЧ
  68.             if (r2.includes("Îļþ²»´æÔÚ") || r2.includes("Òѱ»É¾³ý")) {
  69.                 throw "Îļþ²»´æÔÚ»òÒѱ»É¾³ý";
  70.             }

  71.             // ʹÓøü¾«È·µÄÕýÔòÆ¥Åäsign
  72.             var signMatch = r2.match(/var wp_sign = '([^']+)';/);
  73.             if (!signMatch) {
  74.                 throw "ÎÞ·¨ÌáÈ¡Ç©Ãû²ÎÊý";
  75.             }
  76.             var sign = signMatch[1];
  77.             printl("»ñÈ¡Ç©Ãû:", sign);

  78.             // Æ¥ÅäajaxÇëÇ󷾶
  79.             var ajaxPathMatch = r2.match(/url : '(\/ajaxm\.php\?file=\d+)'/);
  80.             if (!ajaxPathMatch) {
  81.                 throw "ÎÞ·¨ÌáÈ¡ajax·¾¶";
  82.             }
  83.             var ajaxUrl = "https://" + currentDomain + ajaxPathMatch[1];
  84.             printl("¹¹ÔìÇëÇóµØÖ·:", ajaxUrl);

  85.             // ÅäÖÃÇëÇóÍ·
  86.             http.clearHeader();
  87.             http.setHeader('Referer', "https://" + currentDomain + fnPath);
  88.             http.setHeader('User-Agent', "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36");
  89.             http.setHeader('X-Requested-With', 'XMLHttpRequest');
  90.             http.setHeader('Origin', "https://" + currentDomain);
  91.             http.setHeader('Content-Type', 'application/x-www-form-urlencoded');
  92.             http.setHeader('Accept', 'application/json, text/javascript, */*; q=0.01');
  93.             http.setHeader('Accept-Language', 'zh-CN,zh;q=0.9,en;q=0.8');
  94.             http.setHeader('Connection', 'keep-alive');
  95.             http.setHeader('Cache-Control', 'no-cache');
  96.             http.setHeader('Pragma', 'no-cache');

  97.             // ¹¹ÔìPOSTÊý¾Ý
  98.             var data = new map();
  99.             data.add('action', 'downprocess');
  100.             data.add('signs', sign.substring(0, 5));
  101.             data.add('sign', sign);
  102.             data.add('websign', '');
  103.             data.add('websignkey', '61rx');
  104.             data.add('ves', 1);

  105.             // ·¢ËÍPOSTÇëÇó
  106.             var postRes = http.post(ajaxUrl, data);
  107.             
  108.             // ¼ì²éÊÇ·ñ·µ»ØÁË´íÎóÒ³Ãæ
  109.             if (postRes.includes("<!DOCTYPE html>") || postRes.includes("405")) {
  110.                 throw "·þÎñÆ÷·µ»ØÁË´íÎóÒ³Ã棬ÐèÒªÖØÊÔ";
  111.             }
  112.             
  113.             try {
  114.                 var postData = JSON.parse(postRes);
  115.                
  116.                 if (!postData.dom || !postData.url) {
  117.                     throw "ÎÞ·¨»ñÈ¡ÏÂÔØÐÅÏ¢";
  118.                 }
  119.                
  120.                 // »ñÈ¡ÏÂÔصØÖ·
  121.                 var downloadUrl = postData.dom + "/file/" + postData.url;
  122.                 printl("³õʼÏÂÔصØÖ·:", downloadUrl);
  123.                
  124.                 // ³¢ÊÔÖ±½Ó·ÃÎÊÏÂÔصØÖ·£¬ÉèÖøúËæÖض¨Ïò
  125.                 printl("³¢ÊÔÖ±½Ó·ÃÎÊÏÂÔصØÖ·...");
  126.                 http.clearHeader();
  127.                 http.setHeader('User-Agent', "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36");
  128.                 http.setHeader('Accept', "*/*");
  129.                 http.setHeader('Accept-Language', "zh-CN,zh;q=0.9,en;q=0.8");
  130.                 http.setHeader('Referer', "https://" + currentDomain + "/");
  131.                 http.setHeader('Connection', 'keep-alive');
  132.                
  133.                 // Ö±½Ó³¢ÊÔÏÂÔØÎļþ
  134.                 printl("¿ªÊ¼ÏÂÔØÎļþ...");
  135.                 var downloadStartTime = new Date().getTime();
  136.                 http.downloadFile(downloadUrl, saveFilePath);
  137.                 var downloadEndTime = new Date().getTime();
  138.                 var downloadTime = downloadEndTime - downloadStartTime;
  139.                
  140.                 printl("ÎļþÏÂÔØÍê³É£¬ºÄʱ: " + formatTime(downloadTime));
  141.                
  142.                 // ¼ì²éÎļþ´óС
  143.                 try {
  144.                     var file = new java.io.File(saveFilePath);
  145.                     var fileSize = file.length();
  146.                     printl("Îļþ´óС: " + formatFileSize(fileSize));
  147.                     
  148.                     if (fileSize < 1024) {  // Èç¹ûÎļþСÓÚ1KB£¬¿ÉÄÜÊÇ´íÎóÒ³Ãæ
  149.                         printl("¾¯¸æ: Îļþ´óСÒ쳣С£¬¿ÉÄÜÏÂÔز»ÍêÕû");
  150.                     }
  151.                 } catch (e) {
  152.                     printl("ÎÞ·¨»ñÈ¡ÎļþÐÅÏ¢: " + e);
  153.                 }
  154.                
  155.                 var totalTime = new Date().getTime() - startTime;
  156.                 printl("×ܺÄʱ: " + formatTime(totalTime));
  157.                 return true; // ÏÂÔسɹ¦£¬Í˳öÖØÊÔÑ­»·
  158.                
  159.             } catch (jsonError) {
  160.                 printl("½âÎöJSONʧ°Ü: " + jsonError + ", ÏìÓ¦ÄÚÈÝ: " + postRes.substring(0, 100));
  161.                 throw "ÎÞ·¨½âÎö·þÎñÆ÷ÏìÓ¦";
  162.             }
  163.             
  164.         } catch (error) {
  165.             printl("µ±Ç°³¢ÊÔ³ö´í: " + error);
  166.             if (retryCount === maxRetries - 1) {
  167.                 // ×îºóÒ»´Î³¢ÊÔҲʧ°ÜÁË
  168.                 printl("ËùÓÐÖØÊÔ¶¼Ê§°ÜÁË");
  169.                 return false;
  170.             }
  171.             // ·ñÔò¼ÌÐøÏÂÒ»´ÎÖØÊÔ
  172.             continue;
  173.         }
  174.     }
  175.     return false;
  176. }

  177. // ¸ñʽ»¯Îļþ´óС
  178. function formatFileSize(bytes) {
  179.     if (bytes < 1024) return bytes + " B";
  180.     else if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + " KB";
  181.     else if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + " MB";
  182.     else return (bytes / (1024 * 1024 * 1024)).toFixed(2) + " GB";
  183. }

  184. // ʹÓÃʾÀý
  185. var url = "https://wwwgmg.lanzn.com/tomatoOCR";
  186. var saveFilePath = "/sdcard/Download/TomatoOCR.apk";
  187. var result = downloadLanzouFile(url, saveFilePath);

  188. if (result) {
  189.     printl("Îļþ³É¹¦ÏÂÔص½: " + saveFilePath);
  190. } else {
  191.     printl("ÎļþÏÂÔØʧ°Ü");
  192. }
¸´ÖÆ´úÂë
AiWorkÈí¼þÏÂÔØÀ¶×àÔÆOCRÎļþµ½Îļþ¼Ð B2BÍøÂçÈí¼þ AiWorkÈí¼þÏÂÔØÀ¶×àÔÆOCRÎļþµ½Îļþ¼Ð B2BÍøÂçÈí¼þ AiWorkÈí¼þÏÂÔØÀ¶×àÔÆOCRÎļþµ½Îļþ¼Ð B2BÍøÂçÈí¼þ


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

±¾°æ»ý·Ö¹æÔò

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³ÌרÇø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æȨÈí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2025-3-19 17:34 , Processed in 0.098277 second(s), 36 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí