Bonsoir à tous. J'ai codé ceci qui m'a pris toute l'après midi (Je le mets, si un jour ça peut servir à quelqu'un). Comme expliqué dans les commentaire :
1 - On parcours une page html catégorie qui contient des liens vers chaque produit. On récupère l'Url de chaque produit.
2 - On explore le lien de chaque produit, à l'intérieur de ces produits, on récupère : La référence + Les images et on crée un csv (ref;img1,img2,imgN)
Problème : Lors du parcours d'une page catégorie, celle-ci n'affiche, par défaut, que 9 produit. Le reste est chargé en scrollant (en Ajax ou Javascript je suppose).
Comment faire fonctionne mon programme pour qu'il puisse aller récupérer ces informations chargées seulement en scrollant dans le navigateur ?
J'ai pensé à la méthode de charger manuellement les produits dans mon navigateur, copier le code source dans un fichier et l'utiliser ensuite... Mais, j'aimerai savoir s'il existe un meilleur moyen.
Bien à vous, merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 #! /bin/bash #Fonction qui récupère toutes les URL d'images, trie les doubles et garde les plus grandes, et la référence du produit. explore_sub_page() { while read line do if echo "$line" |grep '<div class="artnr"' >/dev/null 2>&1 #Si la ligne contient cette div (marqueur unique) then read line line="${line%<*}" #On supprime la fin de la ligne echo $line fi if echo "$line" | grep '<img srcset="' >/dev/null 2>&1 #Si la ligne contient cette balise (marqueur unique) then for word in $line; #on parcourt chaque mot de line do if echo "$word" | grep -E 'srcset=.*web35_1800.*jpg"' >/dev/null 2>&1 #On prend que cette ligne then prefix="=\"" word=${word#*"$prefix"} #on garde que l'url word="${word%\"*}" echo "$word" elif echo "$word" | grep 'class="product-slider-wrapper' >/dev/null 2>&1 #Pour éviter les doublons de la page then break fi done fi done < <(curl -s $1) #On passe le lien de chaque produit } #Ici on précupère le lien de chaque produit dans une page catégorie. Cependant, CURL n'a accès qu'à 9 produits, # les autres produits sont chargés en AJAX... while read line do if echo "$line" |grep 'class="detailInfo"' >/dev/null 2>&1 then prefix="=\"" line=${line#*"$prefix"} suffix="\"" line="${line%%"$suffix"*}" explore_sub_page $line fi done < <(curl -s $1) #On donne l'Url de la catégorie, qui est une page qui contient les liens vers les fiches produits
Partager