Skip to Content
DocumentationScripts intelligents

Scripts intelligents

Les scripts intelligents permettent à PicHound de reconnaître et regrouper automatiquement les images par usage sur n’importe quelle fiche produit, sans tri manuel. Avec 50+ scripts e-commerce intégrés couvrant Taobao, Tmall, JD, Amazon, Shopee, etc., il sépare visuels principaux, SKU, détails et vidéos. Il prend en charge JPEG, PNG, GIF, WEBP, BMP, SVG, AVIF, une UI en 30+ langues, et une licence Lifetime Pro à $13.99 pour 3 activations (illimitées avec un compte Google). Toutes les règles s’exécutent 100 % localement : le premier modèle IA fait environ 100 Mo, puis tout est traité hors ligne avec RMBG-1.4 / MODNet. Les utilisateurs gratuits ont 12 gros lots par jour (10 ou moins restent gratuits) ; passez à Lifetime Pro pour un accès illimité.

PicHound smart script e-commerce grouping preview

Des scripts personnalisés pour n’importe quel site

Lorsqu’un site n’est pas couvert par les scripts intégrés, étendez PicHound avec un modèle JSON personnalisé. Le modèle correspond aux URL via des expressions régulières et extrait les nœuds image/vidéo via sélecteurs DOM ou expressions JavaScript, pour la même expérience de téléchargement groupé que les scripts officiels.

Prérequis

Écrire des scripts personnalisés demande :

  1. La maîtrise de HTML, JavaScript, CSS et AJAX pour comprendre structure et interfaces de données.
  2. L’aisance avec Chrome DevTools pour inspecter le DOM, relire les requêtes réseau et déboguer.
  3. Une solide connaissance des regex pour extraire précisément URL, chemins d’attributs et adresses d’images.
  4. La capacité à dépanner et itérer les règles quand les pages changent.

📃Exemple de script

Le JSON ci-dessous utilise une fiche 1688 pour montrer comment attribuer visuels principaux, SKU, détails et vidéos à des groupes distincts :

{ "id": 10009, "name": "1688", "ico": "https://assets.pichound.app/1688.ico", "version": "25.1.1", "description": "Extraire intelligemment images HD et vidéos des fiches produit 1688", "reg": "detail.1688.com/offer", "status": "prod", "tags": [ "ec" ], "examples": [ "https://detail.1688.com/offer/739240146617.html" ], "groups": [ { "fn": "updateGroupByIds", "props": { "groupName": "Images principales", "groupIndex": 0, "source": "Object.entries(window.__INIT_DATA.data).find(([k,v]) => v.componentType === '@ali/tdmod-pc-od-main-pic')[1]?.data?.offerImgList", "ids": [ { "attributes": [] } ] } }, { "fn": "updateGroupByIds", "props": { "groupName": "SKU", "groupIndex": 1, "source": "window.__INIT_DATA.globalData.skuModel.skuProps.reduce((acc, o) => { acc.push(...o.value); return acc }, []);", "ids": [ { "attributes": [ "imageUrl" ], "imageNameAttributes": [ "name" ], "replaceUrlRules": [ { "pattern": "!q.*$", "replaceValue": "?sku" } ] } ] } }, { "fn": "updateGroupByIds", "props": { "groupName": "Détails", "groupIndex": 2, "ids": [ { "id": ".content-detail img", "attributes": [ "dataset.lazyloadSrc", "src" ] } ] } }, { "fn": "updateGroupByIds", "props": { "groupName": "Vidéo", "groupIndex": 3, "source": "[Object.entries(window.__INIT_DATA.data).find(([k,v]) => v.componentType === '@ali/tdmod-pc-od-main-pic')[1]?.data?.video]", "ids": [ { "attributes": [ "videoUrl" ], "type": "VIDEO" } ] } } ] }

🔑Documentation API

Interfaces TypeScript pour définir règles de regroupement, correspondances de champs et logique de remplacement d’URL :

export interface IGroup { _id?: string; // ID unique id: string; // Configuration : activé ou non enable: boolean; // Type type: 'custom' | 'official'; // Autres configurations config?: IGroupConfig; // Formulaire rawConfig?: string; // Date de mise à jour updateAt?: number; } export interface IGroupConfig { // ID unique id: number; // Nom de l'extension name: string; // Icône de l'extension ico?: string; // Version de l'extension version?: string; // Description de l'extension description?: string; // Chemin de correspondance par défaut reg: string; // Pré-script prevJS: string; // Fonction de regroupement de l'extension groups: IRun[]; // Statut de publication status?: string; // Exemples examples?: string[]; } export interface IRun { // Capacité de la fonction fn: string; // Paramètres supplémentaires props: IRunProps; } export interface IIds { // Ids de paramètres id: string; // Chemin de paramètres attributes?: string[]; // Type, éventuellement vidéo type?: string; // Informations de description d'image alt?: string; // Règles de remplacement d'URL d'image replaceUrlRules?: IReplaceUrlRule[]; // Règles de filtre d'URL d'image filterUrlRules?: IReplaceUrlRule[]; // Paramètres pour obtenir les noms d'images imageNameAttributes?: string[]; } export interface IReplaceUrlRule { // Regex de remplacement pattern: string // Correspondance partielle/totale de la regex flags?: string // Valeur de remplacement replaceValue?: string } export interface IRunProps { // Objet source, par défaut document.querySelectorAll, renvoie un tableau itérable source?: string; // Ids de paramètres ids: IIds[]; // Nom du groupe groupName: string; // Index du groupe groupIndex: number; }

Étapes suivantes

Dernière mise à jour