Script un peu tordu ...

norrec -  
 norrec - 1 oct. 2009 à 11:10
Bonjour a tous !

Alors voilà, j'ai une demande un peu particulière ... J'ai une liste de sites web sous open office calc (équivalent d'excel) (environ 16 000 ...) que je dois trier, un par un, pour voir quel site est encore valable ou pas. La liste en question est tirée d'une exportation depuis un netasq.

Cette liste se présente sous cette forme (c'est un exmple, je vais pas mettre les 16 000 sites ...) :

*.ca-nmp.fr/*
*.ca-nord-est.fr/*
*.cantou-immo.com/*
*.cantou-immo19.com/*
*.cantou-immo19.com/*
*.cantou-immo19.com/immo/search.php?clangueurl=fr*
*.cantou-immo19.com/index2.php*
*.cap29.com/*

Je me demandais si un script ou une formule dans calc pourrait m'effacer tout les /* a la fin des sites, et me remplacer les *. du début, par des www.

De cette façon je pourrais accéder direct au site (ctrl.clic pour suivre le lien) et je ne serais pas obligé de copier *.siteweb.fr/* dans ma barre d'adresse et de tout m'enlever a la main et ensuite retaper l'adresse correcte ...

Avec environ 16 000 sites web a trier, j'ai réellement besoin d'une astuce comme ca, sinon je vais y er mes journées pendant des semaines ...

Merci de votre aide en espérant qu'elle soit rapide et efficace ! :D

Fab'
A voir également:

5 réponses

dna.factory Messages postés 25768 Date d'inscription   Statut Modérateur Dernière intervention   1 616
 
la méthode la plus simple consiste à utilise un awk en unix...
mais on va supposer que t'es en windows, on va devoir se salir les mains et etre prets à certains risques.
1. enregistre ton fichier en csv
2. ouvre ton fichier avec le bloc note (ou word pad si il est trop gros)
3. utilise l'option remplacer pour remplacer '*.' par 'www.' et "/*" par " "
4. enregistre sous un nom différent
5. ouvre ton nouveau CSV sous calc, et voila

6. va prendre une douche pour te débarasser de cette impression de souillure
2
dubcek Messages postés 18785 Date d'inscription   Statut Contributeur Dernière intervention   5 631
 
hello
on peut ensuite faire un script avec wget (un navigateur en ligne de commande) qui va tester chaque site et reporter ceux qui ne répondent plus à HTTP, on pourrait le faire facilement avec ping, mais beaucoup de sites bloquent le ping.
0
norrec
 
Et comment on ferait ca ?

Quant a donner une solutino autant tout expliquer ^^

J'ai utilisé la solution cité en deuxième post, ca marche, mais je dois quand même faire copier/coller pour tester les sites. Certes ca va plus vite qu'en retapant toute l'adresse (beaucoup plus vite même) mais ya quand même 16 000 sites a tester : /
0
dna.factory Messages postés 25768 Date d'inscription   Statut Modérateur Dernière intervention   1 616
 
sous excel (oui, je suis riche, nan je déconne, c'est au boulot), le ctrl+clic devrait fonctionner
essaye de mettre http://www. au lieu de www.
0
norrec
 
J'ai essayé de mettre http://www., ca fonctionne toujours pas, et j'attends avec impatience ma version de office parce qu'elle tarde a arriver ! Pour ca que j'ai open office d'ailleurs ...

J'ai retenu la solution la plus simple, a savoir le coup du bloc note, c'est tricher mais tant pis ^^

Le script avec un shell bash, je vais m'y pencher, mais comme j'ai aucune machine linux ici, je vais avoir du mal.

Je vous tiens au courant, même si je pense que je vais rester sur la solution citée plus haut.

Merci de vos réponses les gars, dès que ca devient un peu compliqué on voit les gens intéressés par le challenge, ca fait plaisir ;)

A plus !
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

En reprenant l'idée de "dubcek", depuis GNU/Linux avec un shell bash.

[tmpfs]$ cat plop     # le fichier de départ
*.ca-nmp.fr/*
*.ca-nord-est.fr/*
*.cantou-immo.com/*
*.cantou-immo19.com/*
*.cantou-immo19.com/*
*.cantou-immo19.com/immo/search.php?clangueurl=fr*
*.cantou-immo19.com/index2.php*
*.cap29.com/*

[tmpfs]$ sed s'#^\*#http://www#;s/\/*\*$//' plop > liste     # la transformation du fichier

[tmpfs]$ cat liste     # Le résultat issue de la transformation
https://www.credit-agricole.fr/ca-nmp/particulier.html
https://www.credit-agricole.fr/ca-nord-est/particulier.html
http://www.cantou-immo.com
http://www.cantou-immo19.com
http://www.cantou-immo19.com
http://www.cantou-immo19.com/immo/search.php?clangueurl=fr
http://www.cantou-immo19.com/index2.php
http://www.cap29.com

[tmpfs]$ cat foo.sh     # Le script
#! /bin/sh

#set -xv

while read line
do
wget -q --spider "${line}"
retval=$?
if [ "${retval}" = 0 ]
then
echo "${line}" >> listeOK
else
echo "${line}" >> listeKO
fi
done < liste

[tmpfs]$ ./foo.sh     # L'exécution du script

[tmpfs]$ ls     # Vérification de l'existence des 2 listes créées
foo.sh*  liste  listeKO  listeOK  plop

[tmpfs]$ cat listeOK     # Les sites OK ;-))
https://www.credit-agricole.fr/ca-nmp/particulier.html
http://www.cantou-immo.com
http://www.cantou-immo19.com
http://www.cantou-immo19.com
http://www.cantou-immo19.com/immo/search.php?clangueurl=fr
http://www.cantou-immo19.com/index2.php
http://www.cap29.com

[tmpfs]$ cat listeKO     # Les sites KO ;-((
https://www.credit-agricole.fr/ca-nord-est/particulier.html

[tmpfs]$ 
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18785 Date d'inscription   Statut Contributeur Dernière intervention   5 631
 
avec wget pour Windows , le script en DOS (enlever les commentaires pour afficher la progression) :
C:>\ type aa.bat
@echo off

copy NUL listeOK > NUL
copy NUL listeNOTOK > NUL
set c=1
setlocal enableDelayedExpansion
for /F "delims=" %%a in (liste.csv) do (
wget -q --spider %%a
rem echo ++++ !c! wget de %%a
rem set /a c+=1
if !errorlevel! EQU 0 echo %%a >> listeOK
if !errorlevel! GEQ 1 echo %%a >> listeNOTOK
)
type liste*K

C:>\  aa

listeNOTOK

www.ca-nord-est.fr/

listeOK

www.ca-nmp.fr/
www.cantou-immo.com/
www.cantou-immo19.com/
www.cantou-immo19.com/immo/search.php?clangueurl=fr
www.cantou-immo19.com/index2.php
www.cap29.com/
0