[Python] Aide BeautifulSoup

Aide BeautifulSoup [Python] - Python - Programmation

Marsh Posté le 12-09-2015 à 23:30:55    

Salut !
 
Voilà l'histoire je suis très novice dans le Python et je me suis lancé pour créer un petit script qui va récupérer des infos précise dans un tableau html, je m'explique :
 
J'aimerais pouvoir récupérer une suite de 10 chiffres qui suit après un terme bien précis.
 
Par exemple il faudrait que le script analyse chaque <td></td> puis dès qu'il trouve la chaine de caractère "Phone#:" sort les 10 chiffre qui suit.
 
 
 
Mon travail jusqu'a maitenent :
 

Code :
  1. import mechanize
  2. from bs4 import BeautifulSoup
  3. #login
  4. browser = mechanize.Browser()
  5. browser.set_handle_robots(False)
  6. browser.open('http://192.168.0.10/box/reseau-pa4-logs.htm')
  7. browser.select_form(nr = 0)
  8. browser.form['loginUsername'] = 'admin'
  9. browser.form['loginPassword'] = 'admin'
  10. browser.submit()
  11. html = browser.response().read()
  12. # Parser html
  13. soup = BeautifulSoup(html, "html.parser" )
  14. soup_2 = soup.findAll("td" )
  15. print soup_2


 
 
Ce qui renvoi comme résultat :
 

Code :
  1. [<td width="250"><span class="fontestableau">Temps</span></td>, <td width="442"><span class="fontestableau">Description</span></td>, <td>\xa012/9/2015 17:41:19\xa0</td>, <td>\xa0Call States Notify - Line1: Call ended. Phone#: 06xxxxxxxx.\xa0</td>, <td>\xa012/9/2015 17:34:12\xa0</td>, <td>\xa0Call States Notify - Line1: Incoming call from 06xxxxxxxx.\xa0</td>, <td>\xa012/9/2015 17:34:12\xa0</td>, <td>\xa0Call States Notify - Line1: Incoming call from .\xa0</td>, <td>\xa012/9/2015 16:35:27\xa0</td>, <td>\xa0Call States Notify - Line1: Call ended. Phone#: 06xxxxxxxx.\xa0</td>, <td>\xa012/9/2015 16:35:08\xa0</td>, <td>\xa0Call States Notify - Line1: Incoming call from 06xxxxxxxx.\xa0</td>, <td>\xa012/9/2015 16:35:08\xa0</td>, <td>\xa0Call States Notify - Line1: Incoming call from .\xa0</td>, <td>\xa011/9/2015 09:56:47\xa0</td>, <td>\xa0Call States Notify - Line1: Call ended. Phone#: 06xxxxxxxx.\xa0</td>, <td>\xa011/9/2015 09:50:08\xa0</td>, <td>\xa0Call States Notify - Line1: Incoming call from 06xxxxxxxx.\xa0</td>, <td>\xa011/9/2015 09:50:08\xa0</td>, <td align="center"><input align="middle" class="num-button2" type="submit" value="Effacer le journal">\n<input class="num-button2" onclick="window.location.reload();" type="button" value="Actualiser"/></input></td>]


 
 
Du coup il me faudrait un petit coup de main afin de ressortir uniquement les 10 chiffres du numéro de téléphone qui suit le termes "Phone#:"
 
 
Merci d'avance de votre aide !

Reply

Marsh Posté le 12-09-2015 à 23:30:55   

Reply

Marsh Posté le 14-09-2015 à 15:07:28    

Go avec soupselect:
 
https://github.com/syabro/soupselect
 
https://code.google.com/p/soupselect/
 
Et quelques exemples:
 
http://jpython.blogspot.fr/2012/11 [...] ector.html
 
Avec ca tu devrais pouvoir facilement sélectionner ce qui t'intéresse, faire get_text dessus, et ensuite une regex pour extraire juste le numéro de téléphone ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed