perbaiki kode scrapping berikut eslint-disable const axios = requireaxios;const v4 = requireuuid;const fs = requirefs;function signV1obj function oe t var n = 65535 & e + 65535 & t; return

Berikut adalah perbaikan dari kode scraping tersebut:

/* eslint-disable */

const axios = require("axios");
const { v4 } = require("uuid");
const fs = require("fs");

function signV1(obj) {
  // fungsi signV1 tidak perlu diubah
  // ...
}

async function jadi(url) {
  const imgData = await fs.promises.readFile(url, "base64");

  const obj = {
    busiId: "different_dimension_me_img_entry",
    extra: JSON.stringify({
      face_rects: [],
      version: 2,
      platform: "web",
      data_report: {
        parent_trace_id: v4(),
        root_channel: "",
        level: 0,
      },
    }),
    images: [imgData],
  };

  const response = await axios.request({
    method: "POST",
    url: "https://ai.tu.qq.com/overseas/trpc.shadow_cv.ai_processor_cgi.AIProcessorCgi/Process",
    data: obj,
    headers: {
      Accept: "application/json, text/plain, */*",
      "Accept-Encoding": "gzip, deflate, br",
      "Accept-Language": "zh-HK,zh;q=0.9,en-US;q=0.8,en;q=0.7",
      Connection: "keep-alive",
      "Content-Type": "application/json",
      Host: "ai.tu.qq.com",
      Origin: "https://h5.tu.qq.com",
      Referer: "https://h5.tu.qq.com/",
      "Sec-Fetch-Dest": "empty",
      "Sec-Fetch-Mode": "cors",
      "Sec-Fetch-Site": "same-site",
      "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36",
      "sec-ch-ua": '"Google Chrome";v="107", "Chromium";v="107", "Not=A?Brand";v="24"',
      "sec-ch-ua-mobile": "?0",
      "sec-ch-ua-platform": '"Linux"',
      "x-sign-value": signV1(obj),
      "x-sign-version": "v1",
    },
    timeout: 30000,
  });

  return response;
}

module.exports = { jadi };

Beberapa perubahan yang dilakukan:

  1. Menambahkan kata kunci async sebelum deklarasi fungsi jadi untuk membuatnya menjadi async function.
  2. Menggunakan fungsi fs.promises.readFile untuk membaca file gambar secara asynchronous dengan menggunakan await.
  3. Mengubah pemanggilan axios.request dengan menambahkan kata kunci await sebelumnya untuk menunggu hasil respons.
  4. Mengubah return(response) menjadi return response.
  5. Menghapus baris yang tidak perlu seperti const { ss } = require("crypto") dan const { readFileSync } = require("fs").

Dengan perubahan tersebut, kode scraping telah diperbaiki

标签: 社会


原文地址: https://cveoy.top/t/topic/hN6N 著作权归作者所有。请勿转载和采集!