manipulation de chaine de caractère

Venez poser vos questions, répondre aux interrogations des autres ou simplement vous renseigner.
Jeune Pingouin
Message(s) : 22
Inscription : 23 Jan 2016 19:44

manipulation de chaine de caractère

Message par sechanbask » 21 Juin 2018 15:08

Bonjour à tous,

Je cherche un moyens pour ne récupérer que la chaine de caractère après id, par exemple sur la première ligne ne garder que

"1035224"
et mettre
"1125703"
sur une seconde ligne

dans un fichier comme celui là (pouvant contenir des milliers de lignes ):

Code : Tout sélectionner
<html><p><center><h1>  Interference Report  </h1></center><p>
<b>  Interference Report Project File:  </b>  \\192.168.30.200\data\AFFAIRE\EXECUTION\18684-EIFFAGE BDX SEML\07-PG\01-BIM\EI-SEML-R2018.rvt  <br>  <b>  Created:  </b>  jeudi 21 juin 2018 13:52:57  <br>  <b>  Last Update:  </b>    <br>
<p><table border=on>  <tr>  <td></td>  <td ALIGN="center">A</td>  <td ALIGN="center">B</td>  </tr>
<tr>  <td>  1  </td>  <td>  HYDRAU : Pipes : Pipe Types : AT_ALUMINIUM-TRANS AIR : id 1035224  </td>  <td>  HYDRAU : Pipes : Pipe Types : AT_ALUMINIUM-TRANS AIR : id 1125703  </td>  </tr>
<tr>  <td>  2  </td>  <td>  AERAU : Ducts : Round Duct : Raccord avec té et coude segmenté : id 1041750  </td>  <td>  AERAU : Ducts : Round Duct : Raccord par piquage et coude segmenté : id 1041777  </td>  </tr>
<tr>  <td>  3  </td>  <td>  AERAU : Ducts : Round Duct : Raccord avec té et coude segmenté : id 1041750  </td>  <td>  AERAU : Ducts : Round Duct : Raccord par piquage et coude segmenté : id 1041906  </td>  </tr>
<tr>  <td>  4  </td>  <td>  AERAU : Ducts : Round Duct : Raccord avec té et coude segmenté : id 1049938  </td>  <td>  AERAU : Ducts : Round Duct : Raccord par piquage et coude segmenté : id 1050031  </td>  </tr>
<tr>  <td>  5  </td>  <td>  AERAU : Ducts : Round Duct : Raccord avec té et coude segmenté : id 1049959  </td>  <td>  AERAU : Ducts : Round Duct : Raccord par piquage et coude segmenté : id 1050062  </td>  </tr>




C'est possible ?

·
Avatar de l’utilisateur
Message(s) : 143
Inscription : 10 Août 2014 08:36

Re: manipulation de chaine de caractère

Message par greg » 21 Juin 2018 15:27

Code : Tout sélectionner
awk '{print $20}' lefichier.html


(Si le texte html est formatté avec toujours les sauts de ligne au même endroit (entre le <tr> et le <tr>)
et si le champ id est toujours le 20eme...)

Pingouin
Message(s) : 98
Inscription : 03 Nov 2016 19:20

Re: manipulation de chaine de caractère

Message par humangeek » 24 Juin 2018 14:50

Dans le cas ou la solution de greg ne fonctionnerait pas un script avec la lib scrapy et/ou beautifulsoup peut permettre de récuperer le contenu de la balise puis de le parser pour récupérer l’id.

Une autre bonne solution sur le long terme serait de demander au fournisseur de la page html de fournir une api.

Petit Pingouin
Message(s) : 37
Inscription : 10 Oct 2015 22:53

Re: manipulation de chaine de caractère

Message par amalgame » 08 Août 2018 19:21

Si t'as besoin d'un rapide export à la main tu peux toujours ouvrir le fichier avec un navigateur moderne et coller ça dans la console javascript (F12) :
Code : Tout sélectionner
(() => window.open("data:application/json," + encodeURIComponent(JSON.stringify([].map.call(document.querySelectorAll('td'), c => /: id ([0-9]+)/gi.exec(c.innerText)).filter(v => !!v).map(a => a[1]))), '_blank').focus())()

Retour vers Entraide Linux