[Python] Comment enlever les script?
Fermé
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
-
7 mai 2004 à 15:43
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 - 7 mai 2004 à 17:07
dje-dje Messages postés 10415 Date d'inscription mardi 6 janvier 2004 Statut Modérateur Dernière intervention 28 janvier 2011 - 7 mai 2004 à 17:07
A voir également:
- [Python] Comment enlever les script?
- Script vidéo youtube - Guide
- Comment enlever une page sur word - Guide
- Citizen code python - Guide
- Enlever bing - Guide
- Comment enlever les cookies - Guide
4 réponses
JSS
Messages postés
3745
Date d'inscription
jeudi 22 avril 2004
Statut
Contributeur
Dernière intervention
17 décembre 2004
32
7 mai 2004 à 15:57
7 mai 2004 à 15:57
Bonjour ou Bonsoir,
Je connais pas le langage python mais je connais les regexp donc je vais t'apporter ma reponse (peut etre que ca pourra t'aider).
essaye avec : "<Script.*?</Script>.
Autre idée : dans les regexp il prend la plus petite expression pouvant integrer ton expression il te faudra peut etre adapte ton utilisation au cas du javascript et du coup faire :
1 eliminer les balises javascript
2 eliminer les balises scripts
(En 2 passes du coup).
Je pense pas que j'ai ete tres clair mais bon ...
J'attends ton feedback.
++
JSS
Je connais pas le langage python mais je connais les regexp donc je vais t'apporter ma reponse (peut etre que ca pourra t'aider).
essaye avec : "<Script.*?</Script>.
Autre idée : dans les regexp il prend la plus petite expression pouvant integrer ton expression il te faudra peut etre adapte ton utilisation au cas du javascript et du coup faire :
1 eliminer les balises javascript
2 eliminer les balises scripts
(En 2 passes du coup).
Je pense pas que j'ai ete tres clair mais bon ...
J'attends ton feedback.
++
JSS
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
7 mai 2004 à 16:07
7 mai 2004 à 16:07
Il y a une solution bourrin, mais qui marche très bien:
htmlCode.Replace("<script ","<noscript ")
:-)
htmlCode.Replace("<script ","<noscript ")
:-)
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
757
7 mai 2004 à 16:18
7 mai 2004 à 16:18
D'abord merci pour votre aide!
Alors:
- la solution de seb me génère d'autres erreurs: le script vb n'est pas ouvert et fermé dans le même javascript; j'ai reverifié ce code que je dois parser et il sort un Document.write('</script/>'). Balise sur laquelle le Parser se plante... (J'ai vais peut-etre faire un tour d'épuration pour virer celle-là et refaire un test). Sinon, sur un exemple de HTML propre cela aurait convenu. (replace c'est dasn quelle lib?)
- JSS: comme je l'ai mis plus haut, je vais etre obligé de faire une deuxième "épuration" comme tu me suggérais de la faire. Je vais aussi tester ta méthode.
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
Alors:
- la solution de seb me génère d'autres erreurs: le script vb n'est pas ouvert et fermé dans le même javascript; j'ai reverifié ce code que je dois parser et il sort un Document.write('</script/>'). Balise sur laquelle le Parser se plante... (J'ai vais peut-etre faire un tour d'épuration pour virer celle-là et refaire un test). Sinon, sur un exemple de HTML propre cela aurait convenu. (replace c'est dasn quelle lib?)
- JSS: comme je l'ai mis plus haut, je vais etre obligé de faire une deuxième "épuration" comme tu me suggérais de la faire. Je vais aussi tester ta méthode.
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
7 mai 2004 à 16:20
7 mai 2004 à 16:20
Ah pardon !
htmlCode.Replace("<script ","<noscript ").Replace("</script>","</noscript>")
htmlCode.Replace("<script ","<noscript ").Replace("</script>","</noscript>")
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
757
>
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
7 mai 2004 à 16:23
7 mai 2004 à 16:23
C'est dans quel module htmlCode?
Merci
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
Merci
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
>
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
7 mai 2004 à 16:32
7 mai 2004 à 16:32
ah pardon... htmlCode est juste ta chaîne contenant le code HTML.
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
757
>
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
7 mai 2004 à 16:34
7 mai 2004 à 16:34
Ok, mais replace ca sort d'ou? (moi je fais un regexp.sub )
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
>
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
7 mai 2004 à 16:55
7 mai 2004 à 16:55
http://docs.python.org/lib/module-string.html
Le string.replace est beaucoup plus rapide que les expressions régulières. :-)
Le string.replace est beaucoup plus rapide que les expressions régulières. :-)
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
757
7 mai 2004 à 16:26
7 mai 2004 à 16:26
En fait, le cochon qui génère ce code ferme ses script avec <script\> (un anti-slash) et même avec la regexp qui va bien, il ne me substitue pas le code :-(
regexp = re.compile('<script\>',re.IGNORECASE)
test = <script\>
regexp.sub('<script>',test)
-> il me laisse <script\>
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
regexp = re.compile('<script\>',re.IGNORECASE)
test = <script\>
regexp.sub('<script>',test)
-> il me laisse <script\>
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
7 mai 2004 à 16:33
7 mai 2004 à 16:33
.Replace("<script ","<noscript ").Replace("</script>","</noscript>").Replace("<script/>","<noscript/>")
ça ne marcherait pas ?
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
757
>
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
7 mai 2004 à 17:00
7 mai 2004 à 17:00
Replace me remplace bien les \ que me laissait le traitement des regexp. (Désolé de t'avoir embeté, mais mon help(replace) m'envoyait boulé, alors je pensais qu'un autre module devait etre installé)
J'ai de quoi joué maintenant! :-)
Merci
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
J'ai de quoi joué maintenant! :-)
Merci
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
>
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
7 mai 2004 à 17:06
7 mai 2004 à 17:06
oups !
Juste un truc: l'antislash est un caractère spécial:
Au lieu d'écrire .Replace("<script\>","<noscript\>")
tu dois écrire .Replace("<script\\>","<noscript\\>")
ou bien .Replace(r"<script\>",r"<noscript\>")
Juste un truc: l'antislash est un caractère spécial:
Au lieu d'écrire .Replace("<script\>","<noscript\>")
tu dois écrire .Replace("<script\\>","<noscript\\>")
ou bien .Replace(r"<script\>",r"<noscript\>")
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
757
>
dje-dje
Messages postés
10415
Date d'inscription
mardi 6 janvier 2004
Statut
Modérateur
Dernière intervention
28 janvier 2011
7 mai 2004 à 17:07
7 mai 2004 à 17:07
Bah! non...
Avec Replace, j'ai testé le slash et l'anti et il remplace tel que.
tandis qu'avec les regexp, ca ne passait pas...
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres
Avec Replace, j'ai testé le slash et l'anti et il remplace tel que.
tandis qu'avec les regexp, ca ne passait pas...
a+
dje-dje
Il y a 10 types de personne dans le monde,
ceux qui comprennent le binaire et les autres