注册 登录
发贴工具
查看: 6|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] 自动百度贴吧示例

[复制链接]

2579

主题

2627

帖子

1万

积分

积分
15650
跳转到指定楼层
楼主
自动百度贴吧示例
自动百度贴吧示例 群发软件发帖工具
  1. // AIWROK 完整自动化流程:启动百度贴吧 → 点击发帖 → 选择吧 → 输入标题和内容 → 发布
  2. // 全程使用 agent 方式操作,不依赖无障碍权限


  3. print.log("===== 百度贴吧发帖流程启动 =====");
  4. print.time();

  5. // ========== 配置区 ==========
  6. var APP包名 = "com.baidu.tieba";

  7. var 循环次数 = 1;
  8. var 当前循环 = 0;

  9. var 发布标题列表 = [
  10.     "这是一个测试标题",
  11.     "分享一下今天的心情",
  12.     "来讨论一下热门话题"
  13. ];

  14. var 发布内容列表 = [
  15.     "无聊,就发一发帖子看看有什么好玩的。",
  16.     "今天天气不错,分享一个日常~",
  17.     "记录生活中的小美好,欢迎大家一起讨论!"
  18. ];

  19. var 内容索引 = 0;

  20. // ========== 获取设备信息 ==========
  21. var 屏幕宽 = screen.getScreenWidth();
  22. var 屏幕高 = screen.getScreenHeight();
  23. print.log("屏幕尺寸:" + 屏幕宽 + " x " + 屏幕高);
  24. print.log("代理状态:" + (agent.isOpen() ? "已开启" : "未开启"));

  25. // ========== 工具函数 ==========
  26. function 获取XML() {
  27.     var raw = agent.shell("uiautomator dump --compressed /proc/self/fd/1 2>/dev/null");
  28.     var rawStr = "" + raw;
  29.     var startIdx = rawStr.indexOf("<?xml");
  30.     var endIdx = rawStr.indexOf("</hierarchy>");
  31.     if (startIdx !== -1 && endIdx !== -1) {
  32.         return rawStr.substring(startIdx, endIdx + 13);
  33.     }
  34.     return rawStr;
  35. }

  36. function 查找节点中心(xml, text) {
  37.     var idx = ("" + xml).indexOf('text="' + text + '"');
  38.     if (idx === -1) {
  39.         idx = ("" + xml).indexOf("text='" + text + "'");
  40.     }
  41.     if (idx === -1) {
  42.         return null;
  43.     }
  44.     var 后面 = ("" + xml).substring(idx);
  45.     var m = 后面.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  46.     if (!m) {
  47.         m = 后面.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  48.     }
  49.     if (!m) {
  50.         return null;
  51.     }
  52.     var x1 = parseInt(m[1]);
  53.     var y1 = parseInt(m[2]);
  54.     var x2 = parseInt(m[3]);
  55.     var y2 = parseInt(m[4]);
  56.     return {
  57.         x: (x1 + x2) / 2,
  58.         y: (y1 + y2) / 2
  59.     };
  60. }

  61. function 查找输入框中心(xml, hintText) {
  62.     var xmlStr = "" + xml;

  63.     var editTextPattern = /<node[^>]*?class="android\.widget\.EditText"[^>]*?\/>/g;
  64.     var match;
  65.     while ((match = editTextPattern.exec(xmlStr)) !== null) {
  66.         var nodeStr = match[0];
  67.         var textMatch = nodeStr.match(/text="([^"]*)"/);
  68.         if (!textMatch) {
  69.             textMatch = nodeStr.match(/text='([^']*)'/);
  70.         }
  71.         if (textMatch && textMatch[1].indexOf(hintText) !== -1) {
  72.             var boundsMatch = nodeStr.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  73.             if (!boundsMatch) {
  74.                 boundsMatch = nodeStr.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  75.             }
  76.             if (boundsMatch) {
  77.                 var x1 = parseInt(boundsMatch[1]);
  78.                 var y1 = parseInt(boundsMatch[2]);
  79.                 var x2 = parseInt(boundsMatch[3]);
  80.                 var y2 = parseInt(boundsMatch[4]);
  81.                 return {
  82.                     x: (x1 + x2) / 2,
  83.                     y: (y1 + y2) / 2
  84.                 };
  85.             }
  86.         }
  87.     }

  88.     var textPattern = new RegExp('text="([^"]*?' + hintText + '[^"]*)"', 'g');
  89.     while ((match = textPattern.exec(xmlStr)) !== null) {
  90.         var afterText = xmlStr.substring(match.index);
  91.         var boundsMatch = afterText.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  92.         if (!boundsMatch) {
  93.             boundsMatch = afterText.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  94.         }
  95.         if (boundsMatch) {
  96.             var x1 = parseInt(boundsMatch[1]);
  97.             var y1 = parseInt(boundsMatch[2]);
  98.             var x2 = parseInt(boundsMatch[3]);
  99.             var y2 = parseInt(boundsMatch[4]);
  100.             return {
  101.                 x: (x1 + x2) / 2,
  102.                 y: (y1 + y2) / 2
  103.             };
  104.         }
  105.     }

  106.     return null;
  107. }

  108. function 查找RecyclerView第一个条目(xml) {
  109.     var xmlStr = "" + xml;
  110.     var pattern = /class="androidx\.recyclerview\.widget\.RecyclerView"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/;
  111.     var match = xmlStr.match(pattern);
  112.     if (!match) {
  113.         pattern = /class='androidx\.recyclerview\.widget\.RecyclerView'[^>]*?bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/;
  114.         match = xmlStr.match(pattern);
  115.     }

  116.     if (match) {
  117.         var rvX1 = parseInt(match[1]);
  118.         var rvY1 = parseInt(match[2]);
  119.         var rvX2 = parseInt(match[3]);
  120.         var rvY2 = parseInt(match[4]);

  121.         var rvCenterX = (rvX1 + rvX2) / 2;
  122.         var rvTopY = rvY1 + 200;

  123.         return {
  124.             x: rvCenterX,
  125.             y: rvTopY
  126.         };
  127.     }

  128.     return null;
  129. }

  130. function 查找底部导航中间按钮(xml) {
  131.     var pattern = /<node\s[^>]*?index="3"[^>]*?class="android\.widget\.FrameLayout"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  132.     var match;
  133.     while ((match = pattern.exec(xml)) !== null) {
  134.         var x1 = parseInt(match[1]);
  135.         var y1 = parseInt(match[2]);
  136.         var x2 = parseInt(match[3]);
  137.         var y2 = parseInt(match[4]);
  138.         var centerY = (y1 + y2) / 2;
  139.         if (centerY > 屏幕高 * 0.8) {
  140.             return {
  141.                 x: (x1 + x2) / 2,
  142.                 y: centerY
  143.             };
  144.         }
  145.     }

  146.     var pattern2 = /NAF="true"[^>]*?bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/g;
  147.     while ((match = pattern2.exec(xml)) !== null) {
  148.         var x1 = parseInt(match[1]);
  149.         var y1 = parseInt(match[2]);
  150.         var x2 = parseInt(match[3]);
  151.         var y2 = parseInt(match[4]);
  152.         var centerX = (x1 + x2) / 2;
  153.         var centerY = (y1 + y2) / 2;
  154.         if (centerY > 屏幕高 * 0.85 && centerX > 屏幕宽 * 0.3 && centerX < 屏幕宽 * 0.7) {
  155.             return {
  156.                 x: centerX,
  157.                 y: centerY
  158.             };
  159.         }
  160.     }

  161.     return null;
  162. }

  163. function 设置ADB输入法() {
  164.     try {
  165.         var 当前输入法 = ("" + agent.shell("settings get secure default_input_method")).trim();
  166.         print.log("当前默认输入法:" + 当前输入法);
  167.         
  168.         var adbKeyboard = "com.android.adbkeyboard/.AdbIME";
  169.         if (当前输入法.indexOf("adbkeyboard") === -1) {
  170.             print.log("当前不是ADB输入法,尝试切换");
  171.             agent.shell("ime enable " + adbKeyboard);
  172.             sleep.millisecond(毫秒 = 300);
  173.             agent.shell("ime set " + adbKeyboard);
  174.             sleep.millisecond(毫秒 = 500);
  175.             print.log("✓ 已切换到ADB输入法");
  176.         } else {
  177.             print.log("✓ 当前已是ADB输入法");
  178.         }
  179.     } catch (e) {
  180.         print.log("⚠ 设置ADB输入法失败:" + e.message);
  181.         print.log("提示:请手动安装ADB Keyboard并设置为默认输入法");
  182.     }
  183. }

  184. function 输入文本(content, x, y) {
  185.     var 粘贴成功 = false;

  186.     agent.click(Math.floor(x), Math.floor(y));
  187.     sleep.second(秒 = 1);

  188.     agent.shell("service call clipboard 4 i32 1 s16 '" + content + "' i32 0");
  189.     sleep.millisecond(毫秒 = 300);
  190.     agent.shell("service call clipboard 3 i32 1 s16 '" + content + "' i32 0");
  191.     sleep.millisecond(毫秒 = 300);
  192.     Clipboard.copy(content);
  193.     sleep.millisecond(毫秒 = 300);

  194.     print.log("✓ 剪贴板已设置内容");

  195.     agent.shell("input keyevent 279");
  196.     sleep.second(秒 = 1);
  197.     var xmlA = 获取XML();
  198.     if (xmlA.indexOf(content.substring(0, 2)) !== -1) {
  199.         粘贴成功 = true;
  200.         print.log("✓ KEYCODE_PASTE 粘贴成功");
  201.     }

  202.     if (!粘贴成功) {
  203.         agent.shell("input keyevent 50 --meta 0x1000");
  204.         sleep.second(秒 = 1);
  205.         var xmlB = 获取XML();
  206.         if (xmlB.indexOf(content.substring(0, 2)) !== -1) {
  207.             粘贴成功 = true;
  208.             print.log("✓ Ctrl+V 粘贴成功");
  209.         }
  210.     }

  211.     if (!粘贴成功) {
  212.         var 长按命令 = "input swipe " + Math.floor(x) + " " + Math.floor(y) + " " + (Math.floor(x) + 1) + " " + (Math.floor(y) + 1) + " 2000";
  213.         agent.shell(长按命令);
  214.         sleep.second(秒 = 2);

  215.         var xmlC = 获取XML();
  216.         var 关键词 = ["粘贴", "Paste", "paste"];
  217.         for (var i = 0; i < 关键词.length; i++) {
  218.             if (xmlC.indexOf(关键词[i]) !== -1) {
  219.                 var 后面 = xmlC.substring(xmlC.indexOf(关键词[i]));
  220.                 var m = 后面.match(/bounds="\[(\d+),(\d+)\]\[(\d+),(\d+)\]"/);
  221.                 if (!m) {
  222.                     m = 后面.match(/bounds='\[(\d+),(\d+)\]\[(\d+),(\d+)\]'/);
  223.                 }
  224.                 if (m) {
  225.                     var cx = (parseInt(m[1]) + parseInt(m[3])) / 2;
  226.                     var cy = (parseInt(m[2]) + parseInt(m[4])) / 2;
  227.                     agent.click(cx, cy);
  228.                     粘贴成功 = true;
  229.                     print.log("✓ 长按粘贴成功");
  230.                     break;
  231.                 }
  232.             }
  233.         }
  234.     }

  235.     if (!粘贴成功) {
  236.         print.log("✗ 所有粘贴方式均未成功");
  237.     }

  238.     return 粘贴成功;
  239. }

  240. // ========================================
  241. // 主循环开始
  242. // ========================================
  243. for (当前循环 = 1; 循环次数 == 0 || 当前循环 <= 循环次数; 当前循环++) {
  244.     if (循环次数 > 0) {
  245.         print.log("\n======================================");
  246.         print.log("===== 第 " + 当前循环 + " / " + 循环次数 + " 次循环 =====");
  247.         print.log("======================================");
  248.     } else {
  249.         print.log("\n======================================");
  250.         print.log("===== 第 " + 当前循环 + " 次循环(无限模式)=====");
  251.         print.log("======================================");
  252.     }

  253.     var 发布标题 = 发布标题列表[内容索引 % 发布标题列表.length];
  254.     var 发布内容 = 发布内容列表[内容索引 % 发布内容列表.length];
  255.     内容索引++;

  256.     print.log("本次发布标题:" + 发布标题);
  257.     print.log("本次发布内容:" + 发布内容);

  258.     // ========================================
  259.     // 步骤1:启动百度贴吧
  260.     // ========================================
  261.     print.log("\n========== 步骤1:启动百度贴吧 ==========");
  262.     try {
  263.         app.openApp(APP包名);
  264.         print.log("✓ 已启动百度贴吧");
  265.     } catch (e) {
  266.         print.log("✗ 启动失败:" + e.message);
  267.     }
  268.     sleep.second(秒 = 5);

  269.     // ========================================
  270.     // 步骤2:设置ADB输入法(支持中文输入)
  271.     // ========================================
  272.     print.log("\n========== 步骤2:设置ADB输入法 ==========");
  273.     设置ADB输入法();

  274.     // ========================================
  275.     // 步骤3:点击底部导航中间的加号按钮
  276.     // ========================================
  277.     print.log("\n========== 步骤3:点击底部导航中间的加号按钮 ==========");
  278.     var 加号按钮点击成功 = false;

  279.     for (var i = 0; i < 5; i++) {
  280.         var xml2 = 获取XML();
  281.         print.log("  正在扫描界面...");

  282.         var 加号按钮位置 = 查找底部导航中间按钮(xml2);
  283.         if (加号按钮位置) {
  284.             print.log("  ✓ 找到底部导航中间按钮:(" + Math.floor(加号按钮位置.x) + ", " + Math.floor(加号按钮位置.y) + ")");
  285.             agent.click(Math.floor(加号按钮位置.x), Math.floor(加号按钮位置.y));
  286.             加号按钮点击成功 = true;
  287.             sleep.second(秒 = 3);

  288.             var xml2b = 获取XML();
  289.             var 发布贴子选项位置 = 查找节点中心(xml2b, "发布贴子");
  290.             if (发布贴子选项位置) {
  291.                 print.log("  ✓ 找到发布贴子选项");
  292.                 agent.click(Math.floor(发布贴子选项位置.x), Math.floor(发布贴子选项位置.y));
  293.                 print.log("✓ 已进入发布贴子页面");
  294.             }
  295.             break;
  296.         }

  297.         sleep.second(秒 = 2);
  298.     }

  299.     if (!加号按钮点击成功) {
  300.         print.log("⚠ 未找到加号按钮,使用百分比坐标");
  301.         agent.clickPercent(0.5, 0.96);
  302.         sleep.second(秒 = 3);

  303.         var xml2c = 获取XML();
  304.         var 发布贴子选项位置 = 查找节点中心(xml2c, "发布贴子");
  305.         if (发布贴子选项位置) {
  306.             print.log("  ✓ 找到发布贴子选项");
  307.             agent.click(Math.floor(发布贴子选项位置.x), Math.floor(发布贴子选项位置.y));
  308.             print.log("✓ 已进入发布贴子页面");
  309.         }
  310.     }

  311.     // ========================================
  312.     // 步骤4:选择吧
  313.     // ========================================
  314.     print.log("\n========== 步骤4:选择吧 ==========");
  315.     var 选择吧完成 = false;
  316.     var 已经点击选择吧 = false;

  317.     for (var j = 0; j < 5; j++) {
  318.         var xml3 = 获取XML();

  319.         if (xml3.indexOf("最近逛的吧") !== -1 || xml3.indexOf("关注的吧") !== -1) {
  320.             var 第一个吧位置 = 查找RecyclerView第一个条目(xml3);
  321.             if (第一个吧位置) {
  322.                 print.log("  ✓ 选择列表中第一个吧:(" + Math.floor(第一个吧位置.x) + ", " + Math.floor(第一个吧位置.y) + ")");
  323.                 agent.click(Math.floor(第一个吧位置.x), Math.floor(第一个吧位置.y));
  324.                 sleep.second(秒 = 3);
  325.                 选择吧完成 = true;
  326.                 break;
  327.             }
  328.         }

  329.         var 选择吧位置 = 查找节点中心(xml3, "选择吧");
  330.         if (选择吧位置 && !已经点击选择吧) {
  331.             print.log("  ✓ 找到选择吧:(" + Math.floor(选择吧位置.x) + ", " + Math.floor(选择吧位置.y) + ")");
  332.             agent.click(Math.floor(选择吧位置.x), Math.floor(选择吧位置.y));
  333.             已经点击选择吧 = true;
  334.             sleep.second(秒 = 3);
  335.         } else if (xml3.indexOf("发布贴子") !== -1) {
  336.             print.log("✓ 已在发布页面(可能已选吧)");
  337.             选择吧完成 = true;
  338.             break;
  339.         }

  340.         sleep.second(秒 = 2);
  341.     }

  342.     if (!选择吧完成) {
  343.         print.log("⚠ 跳过选择吧步骤");
  344.     }

  345.     // ========================================
  346.     // 步骤5:输入标题
  347.     // ========================================
  348.     print.log("\n========== 步骤5:输入标题 ==========");
  349.     var 标题输入成功 = false;

  350.     for (var k = 0; k < 5; k++) {
  351.         var xml4 = 获取XML();

  352.         var 标题输入框位置 = 查找输入框中心(xml4, "请输入完整贴子标题");
  353.         if (!标题输入框位置) {
  354.             标题输入框位置 = 查找输入框中心(xml4, "完整贴子标题");
  355.         }
  356.         if (!标题输入框位置) {
  357.             标题输入框位置 = 查找输入框中心(xml4, "标题");
  358.         }

  359.         if (标题输入框位置) {
  360.             print.log("  ✓ 找到标题输入框:(" + Math.floor(标题输入框位置.x) + ", " + Math.floor(标题输入框位置.y) + ")");

  361.             var 粘贴结果 = 输入文本(发布标题, 标题输入框位置.x, 标题输入框位置.y);
  362.             if (粘贴结果) {
  363.                 print.log("✓ 标题输入成功");
  364.                 标题输入成功 = true;
  365.             } else {
  366.                 print.log("✗ 标题输入失败");
  367.             }
  368.             break;
  369.         }

  370.         sleep.second(秒 = 2);
  371.     }

  372.     if (!标题输入成功) {
  373.         print.log("✗ 标题输入失败");
  374.     }

  375.     // ========================================
  376.     // 步骤6:输入内容
  377.     // ========================================
  378.     print.log("\n========== 步骤6:输入内容 ==========");
  379.     var 内容输入成功 = false;

  380.     for (var l = 0; l < 5; l++) {
  381.         var xml5 = 获取XML();

  382.         var 内容输入框位置 = 查找输入框中心(xml5, "来吧,尽情发挥吧");
  383.         if (!内容输入框位置) {
  384.             内容输入框位置 = 查找输入框中心(xml5, "尽情发挥");
  385.         }
  386.         if (!内容输入框位置) {
  387.             内容输入框位置 = 查找输入框中心(xml5, "请输入内容");
  388.         }

  389.         if (内容输入框位置) {
  390.             print.log("  ✓ 找到内容输入框:(" + Math.floor(内容输入框位置.x) + ", " + Math.floor(内容输入框位置.y) + ")");

  391.             var 粘贴结果 = 输入文本(发布内容, 内容输入框位置.x, 内容输入框位置.y);
  392.             if (粘贴结果) {
  393.                 print.log("✓ 内容输入成功");
  394.                 内容输入成功 = true;
  395.             } else {
  396.                 print.log("✗ 内容输入失败");
  397.             }
  398.             break;
  399.         }

  400.         sleep.second(秒 = 2);
  401.     }

  402.     if (!内容输入成功) {
  403.         print.log("✗ 内容输入失败");
  404.     }

  405.     // ========================================
  406.     // 步骤7:点击发布
  407.     // ========================================
  408.     print.log("\n========== 步骤7:点击发布 ==========");
  409.     var 发布成功 = false;

  410.     for (var m = 0; m < 5; m++) {
  411.         var xml6 = 获取XML();

  412.         var 发布按钮位置 = 查找节点中心(xml6, "发布");
  413.         if (发布按钮位置) {
  414.             print.log("  ✓ 找到发布按钮:(" + Math.floor(发布按钮位置.x) + ", " + Math.floor(发布按钮位置.y) + ")");
  415.             agent.click(Math.floor(发布按钮位置.x), Math.floor(发布按钮位置.y));
  416.             sleep.second(秒 = 3);

  417.             var xml6b = 获取XML();
  418.             if (xml6b.indexOf("发布成功") !== -1 || xml6b.indexOf("帖子已发布") !== -1) {
  419.                 print.log("✓ 帖子发布成功");
  420.                 发布成功 = true;
  421.             } else if (xml6b.indexOf("发布贴子") === -1) {
  422.                 print.log("✓ 已离开发布页面,发布流程完成");
  423.                 发布成功 = true;
  424.             } else {
  425.                 print.log("⚠ 发布按钮点击后页面未变化");
  426.             }
  427.             break;
  428.         }

  429.         sleep.second(秒 = 2);
  430.     }

  431.     if (!发布成功) {
  432.         print.log("✗ 发布失败");
  433.     }

  434.     // ========================================
  435.     // 步骤8:关闭APP
  436.     // ========================================
  437.     print.log("\n========== 步骤8:关闭APP ==========");
  438.     try {
  439.         agent.shell("am force-stop " + APP包名);
  440.         print.log("✓ 已关闭百度贴吧");
  441.     } catch (e) {
  442.         print.log("⚠ 关闭APP失败:" + e.message);
  443.     }
  444.     sleep.second(秒 = 3);

  445.     // ========================================
  446.     // 循环间隔
  447.     // ========================================
  448.     if (循环次数 == 0 || 当前循环 < 循环次数) {
  449.         print.log("\n========== 等待下一次循环 ==========");
  450.         sleep.second(秒 = 5);
  451.     }
  452. }

  453. // ========================================
  454. // 结果汇总
  455. // ========================================
  456. print.timeEnd();
  457. print.log("\n======================================");
  458. print.log("===== 所有循环执行完成 =====");
  459. if (循环次数 > 0) {
  460.     print.log("总计执行:" + 循环次数 + " 次");
  461. } else {
  462.     print.log("无限循环模式,已执行:" + (当前循环 - 1) + " 次");
  463. }
  464. print.log("======================================");
复制代码



unto代理模式简书自动流程nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖