PinganGetData

获取业务数据

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         PinganGetData
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  获取业务数据
// @author       DuJian
// @license      GNU GPLv3
// @match        *://*.taobao.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=taobao.com
// @grant        none
// ==/UserScript==

(function () {
  // "use strict";
  //先导入jq
  var script = document.createElement("script");
  (script.src = "https://code.jquery.com/jquery-3.0.0.min.js"),
    document.head.appendChild(script);
  //画一个控制面板 里面加按钮
  var dataarr = [];
  var dataarr2 = [];
  drawdiv();
  drawinputbox();
  getDatabtn(); //获取数据的按钮
  addButton(); //发送请求的按钮
  turnpagebtn(); //发送请求的按钮

  var thehttpurl = window.location.href;
  var searchurlOff = false;
  if (thehttpurl.indexOf("s.taobao.com/search")) {
    //匹配s.taobao
    searchurlOff = true;
  }
  console.log(thehttpurl, "thehttpurl");
  //画控制面板
  function drawdiv() {
    var mydiv = document.createElement("div");
    // 设置属性
    mydiv.setAttribute("id", "myDiv");
    mydiv.setAttribute("class", "myClass");
    mydiv.setAttribute(
      "style",
      "width: 250px; min-height: 250px; background-color: gray;display:flex;flex-direction: column;justify-content:center;align-items:center;position:fixed;top:25%;right:8%;z-index:999999999"
    );
    document.body.appendChild(mydiv);
  }

  //画输入关键词
  function drawinputbox() {
    // 创建一个新的input元素作为搜索框
    var searchInput = document.createElement("input");
    searchInput.type = "text";
    searchInput.placeholder = "请输入搜索内容...";
    searchInput.className = "search-input";
    searchInput.setAttribute(
      "style",
      "width: 100px;height: 25px;outline: none;"
    );

    // 创建一个新的button元素作为搜索按钮
    var searchButton = document.createElement("button");
    searchButton.textContent = "搜索";
    searchButton.className = "search-button";
    searchButton.setAttribute(
      "style",
      "width: 50px;height: 25px;outline: none;border: navajowhite;line-height: 25px;text-align: center;"
    );
    searchButton.addEventListener("click", function () {
      // 在这里处理搜索事件,比如发送请求到服务器
      var tbsinputbox = document.getElementById("J_Search");
      var tbsinput = tbsinputbox.getElementsByTagName("input")[0];
      var tbsbutton = tbsinputbox.getElementsByTagName("button")[0];
      console.log(tbsinput.value);
      tbsinput.value = searchInput.value;
      tbsbutton.click();
      // alert("搜索内容: " + searchInput.value);
    });

    // 创建一个包裹元素来容纳输入框和按钮
    var searchWrapper = document.createElement("div");
    searchWrapper.className = "search-wrapper";
    // 将搜索框和按钮添加到包裹元素中
    searchWrapper.appendChild(searchInput);
    searchWrapper.appendChild(searchButton);
    var Paneldiv = document.getElementById("myDiv");
    Paneldiv.appendChild(searchWrapper);
  }
  //发送请求的按钮
  function addButton() {
    var newButton1 = document.createElement("button");
    newButton1.setAttribute("id", "myButton");
    newButton1.innerHTML = "发送请求";
    // 可选:为按钮添加一些样式
    newButton1.style.cssText = "color: black; padding: 10px;margin-top:15px";
    var Paneldiv = document.getElementById("myDiv");

    // 将新创建的按钮添加到div中
    Paneldiv.appendChild(newButton1);
  }
  //获取数据的按钮
  function getDatabtn() {
    // 创建一个新的按钮元素
    var newButton2 = document.createElement("button");
    newButton2.setAttribute("id", "getdata");
    newButton2.innerHTML = "获取数据";
    newButton2.style.cssText = "color: black; padding: 10px;margin-top:15px";
    var Paneldiv = document.getElementById("myDiv");

    Paneldiv.appendChild(newButton2);
  }
  //自动翻页按钮?
  function turnpagebtn() {
    // 创建一个新的按钮元素
    var newButton3 = document.createElement("button");
    newButton3.setAttribute("id", "turnpage");
    newButton3.innerHTML = "自动翻页";
    newButton3.style.cssText = "color: black; padding: 10px;margin-top:15px";
    var Paneldiv = document.getElementById("myDiv");
    Paneldiv.appendChild(newButton3);
  }

  // 获取数据按钮元素
  var getdataButton = document.getElementById("getdata");
  getdataButton.addEventListener("click", function () {
    console.log("获取数据!");
    if (searchurlOff) {
      //s.taobao
      let searchDiv = document.getElementsByClassName(
        "Content--contentInner--QVTcU0M"
      )[0];
      console.log(searchDiv, "searchDiv");
      let selements = searchDiv.getElementsByTagName("div");
      console.log(selements);
      dataarr = selements;
      for (let index = 0; index < selements.length; index++) {
        const item = selements[index];
        let obj = {
          baseURI: item.baseURI,
          innerText: item.innerText,
          innerHTML: item.innerHTML,
        };
        dataarr2.push(obj);
      }
      console.log(dataarr2);
    } else {
      let elements = document.getElementsByClassName("pc-items-item");
      console.log(elements);
      dataarr = elements;
      for (let index = 0; index < elements.length; index++) {
        const item = elements[index];
        let obj = {
          baseURI: item.baseURI,
          innerText: item.innerText,
          innerHTML: item.innerHTML,
        };
        dataarr2.push(obj);
      }
      console.log(dataarr2);
    }
  });

  // 获取数据按钮元素
  var turnpageButton = document.getElementById("turnpage");
  turnpageButton.addEventListener("click", function () {
    autoturnpage();
  });

  //实现自动翻页 - 下一页
  //因为会出现验证码固定时间翻页-生成随机数 翻页
  function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }

  let randomInt = getRandomInt(1500, 38000);
  console.log(randomInt, "randomInt");
  function autoturnpage() {
    console.log("启动自动翻页");
    if (searchurlOff) {
      var snextpagediv = document.getElementsByClassName(
        "next-pagination-pages"
      )[1];
      var nextpage = snextpagediv.getElementsByClassName("next-next");
      console.log(nextpage, "nextpage");
      if (nextpage) {
        setInterval(() => {
          nextpage[0].click();
          getdataButton.click();
          // setInterval(() => {
          //   // 滚动到指定位置
          //   window.scrollTo(100, randomInt * 10 + Math.floor(Math.random())); // 滚动到(x:100, y:500)位置
          // }, 7500);
        }, randomInt);
      }
    } else {
      var mynextpagediv = document.getElementById("J_pc-search-page-nav");
      var mynextpage = mynextpagediv.getElementsByTagName("span");
      if (mynextpage) {
        setInterval(() => {
          mynextpage[2].click();
          setInterval(() => {
            // 滚动到指定位置
            window.scrollTo(100, randomInt * 10 + 2); // 滚动到(x:100, y:500)位置
          }, 7500);
        }, randomInt);
      }
    }
  }
  // 获取请求按钮元素
  var myButton = document.getElementById("myButton");
  // 添加点击事件监听器
  myButton.onclick = function () {
    // alert("Hello, World!");
    // 准备要发送的数据
    // const data = new FormData();
    // data.append("username", username);
    // data.append("password", password);
    // 发送POST请求
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://znz.saicjg.com/api/auth/verifyCode", true);

    xhr.onload = function () {
      if (this.status === 200) {
        // 请求成功,处理响应数据
        console.log('响应成功:',this.responseText);
      } else {
        // 请求失败
        console.error("Request failed.  Returned status of " + this.status);
      }
    };

    xhr.onerror = function () {
      // 网络错误
      console.error("Network Error");
    };

    xhr.send();
    /* fetch(
      "https://znz.saicjg.com/api/auth/verifyCode",
      {
        method: "GET", // 指定请求方法为POST
        body: "", // 将表单数据作为请求体发送
        headers: {
          "Content-Type": "application/x-www-form-urlencoded", // 设置请求头,告诉服务器发送的是表单数据
        },
      }
    )
      .then((response) => {
        // 检查响应是否成功
        if (!response.ok) {
          throw new Error("网络响应不是ok");
        }
        // 处理响应数据,例如返回JSON格式的数据
        return response.json();
      })
      .then((data) => {
        // 在这里处理服务器返回的数据
        console.log("发送成功:", data);
        alert("请求成功!");
      })
      .catch((error) => {
        // 处理请求过程中出现的错误
        console.error("发送成功:", error);
        alert("请求失败,请稍后再试。");
      }); */
  };

  
})();