Bonjour,

Mon problème en soi est simple à comprendre mais je n'arrive pas à lui trouver une solution.

En fait j'ai déjà un script en python qui fait déjà ce que je veux faire mais pour un site disons "simple" :

Voilà une partie de ce script :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
!/usr/bin/python
# -*-coding:Utf-8 -*
# importation des librairies
import smtplib
import urllib
import os.path
Ci-dessous la partie que je dois modifier pour pouvoir l'utiliser sur mon autre site :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
# recuperation adresse IP publique
texte = urllib.urlopen("http://www.monip.org").read()
ip_public = texte.split('IP : ')[1].split('<')[0]
 
# Tests (A effacer par la suite)
print "La variable texte contient : ", texte
print "La variable ip_public contient : ", ip_public
Résultat obtenu :

pi@raspberrypi:~/programmation/python$ ./envoiMdpVpnBook.py
La variable texte contient : <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>MonIP.org v1.0</title>
<META http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
</head>
<P ALIGN="center"><FONT size=8><BR>IP : xx.xx.xx.xx<br></font><font size=3><i>ABordeaux-654-1-236-32.wxx-xx.abo.wanadoo.fr</i><br></font><font size=1><br><br>Pas de proxy d▒tect▒ - No Proxy detected</font></html>

La variable ip_public contient : xx.xx.xx.xx
En bref, le script récupère une adresse IP dans une page HTML qu'il stocke ensuite dans un fichier texte en local puis toute les heures l'adresse IP du site est comparée à celle se trouvant dans mon fichier texte et si celle du site est différent elle est copié dans le fichier texte et envoyer sur ma boite mail.

ps : je n'ai pas affiché le reste du script pour éviter de surcharger mais si des personnes sont intéressées je peux le partager.

Ce script fonctionne parfaitement bien, c'est pourquoi je compte le réutiliser.

Pour en venir à mon problème, voilà ce que j'obtiens pour un autre site plus "lourd" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python
# -*-coding:Utf-8 -*
# importation des librairies
import smtplib
import urllib
import os.path
 
# recuperation adresse IP publique
texte = urllib.urlopen("http://www.vpnbook.com/freevpn").read()
ip_public = texte.split('Password: ')[1].split('<')[0]
 
# Tests (A effacer par la suite)
print "La variable texte contient : ", texte
print "La variable ip_public contient : ", ip_public
Résultat :

La variable texte contient : <!DOCTYPE html>
<!--[if lt IE 7 ]><html class="ie ie6 no-js" lang="en"> <![endif]-->
<!--[if IE 7 ]><html class="ie ie7 no-js" lang="en"> <![endif]-->
<!--[if IE 8 ]><html class="ie ie8 no-js" lang="en"> <![endif]-->
<!--[if IE 9 ]><html class="ie ie9 no-js" lang="en"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html class="no-js" lang="en"> <!--<![endif]-->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

<title>Free VPN Accounts &bull; 100% Free PPTP and OpenVPN Service</title>
<meta name="description" content="Free VPN Service &ndash; VPNBook.com is the #1 premium Free VPN Server account provider. US, UK, and offshore VPN servers available.">
<meta name="keywords" content="free vpn, free vpn service, free vpn server, free vpn account, openvpn, pptp vpn, web proxy" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">

<link rel="stylesheet" href="/css/skeleton-v1.1.css">
<link rel="stylesheet" href="/css/flexslider-v1.8.css">
<link rel="stylesheet" href="/css/main-r6.css?0211">
<link rel="stylesheet" href="/css/media-queries-r6.css">
<link rel="stylesheet" href="/css/sprites-r6.css">
<link rel="stylesheet" href="/css/theme-default-r6.css">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,600,400italic' rel='stylesheet' type='text/css'>

<link rel="shortcut icon" href="/images/favicon.ico">
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="/images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="/images/apple-touch-icon-114x114.png">

<!-- Allow IE to render HTML5 -->
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-40096058-1', 'vpnbook.com');
ga('send', 'pageview');
</script>

</head>

<body>
<div id="main" role="main">

<header>
<div class="container">
<h1 class="logo one-third column alpha">
<a href="/">
<img src="/images/logo.png" alt="Free VPN" class="scale-with-grid" />
<img src="/images/logo-mobile.png" class="scale-with-grid mobile-only" alt="" /><!-- Alternative image for mobile devices -->
</a>
</h1>

<nav class="menu two-thirds column omega">
<ul>
<li><a href="/" >VPNBook<br /><span>news</span></a></li>
<li><a href="/freevpn" class='active'>Free VPN<br /><span>accounts</span></a></li>
<li><a href="/webproxy" >Free Web<br /><span>proxy</span></a></li>
<li><a href="/howto" >How-To<br /><span>setup</span></a></li>
<li><a href="/features" >Features<br /><span>service</span></a></li>
<li><a href="/contact" >Privacy<br /><span>contact</span></a></li>
</ul>
</nav>
</div><!-- .container -->

<div class="bottom-gradient">
<span class="left"></span>
<span class="center"></span>
<span class="right"></span>
</div>
</header>

<article id="pricing">
<div class="container">

<div class="sixteen columns titleset">
<h2 class="remove-bottom">Free VPN</h2>
<h6 class="subheader">PPTP and OpenVPN Accounts<br>&nbsp;</h6>

<div class="align-center adsense">
<script type="text/javascript"><!--
google_ad_client = /* Vpnbook LB-1 */
"ca-pub-3860002410887566";
google_ad_slot = "5227255820";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</div>
</div>

<div class="one-third column">
<div class="headset price clearfix">
<img src="/images/empty.gif" alt="" class="large-icons icon-font" />
<h4>Free PPTP VPN</h4>
<span><sup>$</sup>0<sub>/mo</sub></span>
</div>
<div class="bottom-gradient add-top add-bottom">
<span class="left"></span>
<span class="center"></span>
<span class="right"></span>
</div>
<p>PPTP (point to point tunneling) is widely used since it is supported across all Microsoft Windows,
Linux, Apple, Mobile and PS3 platforms. It is however easier to block and might not work if your ISP or
government blocks the protocol. In that case you need to use OpenVPN, which is impossible to detect or block.</p>

<ul class="disc">
<li><strong>euro195.vpnbook.com</strong></li>
<li><strong>euro213.vpnbook.com</strong></li>
<li><strong>us1.vpnbook.com</strong> <span class="red">(US VPN - optimized for fast web surfing; no p2p downloading)</span></li>
<li><strong>us2.vpnbook.com</strong> <span class="red">(US VPN - optimized for fast web surfing; no p2p downloading)</span></li>
<li><strong>ca1.vpnbook.com</strong> <span class="red">(Canada VPN - optimized for fast web surfing; no p2p downloading)</span></li>
<li><strong><strike>uk180.vpnbook.com</strike></strong> <span class="red">(Retired)</span></li>
<li>Username: <strong>vpnbook</strong></li>
<li>Password: <strong>guSpUda8</strong></li>
</ul>

<div><strong><span class="green"> More servers coming. Please Donate.</span></strong></div>

</div><!-- .columns -->


<div class="one-third column box light featured">
<div class="headset price clearfix">
<img src="/images/empty.gif" alt="" class="large-icons icon-font" />
<h4>Free OpenVPN <br><small>(Recommended)</small></h4>
<span><sup>$</sup>0<sub>/mo</sub></span>
</div>

<div class="bottom-gradient add-top add-bottom">
<span class="left"></span>
<span class="center"></span>
<span class="right"></span>
</div>

<p>OpenVPN is the best and most recommended open-source VPN software world-wide. It is the most secure VPN option.
You need to download the open-source <a href="/howto">OpenVPN Client</a> and our configuration and certificate bundle
from the links below (use TCP if you cannot connect to UDP due to network restriction).</p>

<ul class="disc">
<li><a href="/free-openvpn-account/VPNBook.com-OpenVPN-Euro1.zip">Euro1 OpenVPN Certificate Bundle</a> </li>
<li><a href="/free-openvpn-account/VPNBook.com-OpenVPN-Euro2.zip">Euro2 OpenVPN Certificate Bundle</a> </li>
<li><a href="/free-openvpn-account/VPNBook.com-OpenVPN-US1.zip">US1 OpenVPN Certificate Bundle</a> <span class="red">(optimized for fast web surfing; no p2p downloading)</span></li>
<li><a href="/free-openvpn-account/VPNBook.com-OpenVPN-US2.zip">US2 OpenVPN Certificate Bundle</a> <span class="red">(optimized for fast web surfing; no p2p downloading)</span></li>
<li><a href="/free-openvpn-account/VPNBook.com-OpenVPN-CA1.zip">CA1 OpenVPN Certificate Bundle</a> <span class="red">(optimized for fast web surfing; no p2p downloading)</span></li>
<li><strike>UK OpenVPN Certificate Bundle</strike> <span class="red">(Retired)</span></li>
<li>All bundles include UDP53, UDP 25000, TCP 80, TCP 443 profile</li>
<li>Username: <strong>vpnbook</strong></li>
<li>Password: <strong>guSpUda8</strong></li>
</ul>
<a class="button featured animate">Choose an OpenVPN Server from above</a>
</div><!-- .columns -->

<div class="one-third column">
<div class="headset price clearfix">
<img src="/images/empty.gif" alt="" class="large-icons icon-burst" />
<h4>Donate</h4>

</div>
<div class="bottom-gradient add-top add-bottom">
<span class="left"></span>
<span class="center"></span>
<span class="right"></span>
</div>

<div class="align-center" id="paypalDonate">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="NNED7R4DHDB9L">
<input type="image" src="/images/donate.png" border="0" name="submit" alt="Donate">
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
</div>

<div class="align-center">
<br />
<strong>Bitcoin Donation</strong>
<br />
<small>1FFExjn6sm2oMZ2LJsTtn1t8uXW6EE7HQ7</small>
</div>

<div class="socialMediaContainer2">
<div class="plusoneButton"><g:plusone size="tall" href="http://www.vpnbook.com"></g:plusone></div>
<div class="facebookButton"><div id="fb-root"></div><fb:like href="http://www.vpnbook.com" send="false" layout="box_count" width="65" show_faces="false" font="arial"></fb:like></div>
<div class="twitterButton"><a href="http://twitter.com/share" rel="nofollow" class="twitter-share-button" data-url="http://www.vpnbook.com" data-text="VPNBook.com Free VPN Service" data-count="vertical">Tweet</a></div>
</div>

</div><!-- .columns -->

<div style="clear:both;">&nbsp;</div>
<div class="align-center adsense">
<script type="text/javascript"><!--
google_ad_client = /* Vpnbook LB-2 */
"ca-pub-3860002410887566";
google_ad_slot = "9781879828";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>

</div><!-- container -->
</article>

</div><!-- #main -->

<!-- share this code -->
<!-- end share this -->
<div id="share-icons">
<div id="share-mask"></div>
<div class="addthis_toolbox addthis_default_style addthis_32x32_style">
<a class="addthis_button_facebook"></a>
<a class="addthis_button_twitter"></a>
<a class="addthis_button_linkedin"></a>
<a class="addthis_button_google_plusone"></a>
<a class="addthis_button_compact"></a>
</div>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4f92e19745ac6401"></script>
<!-- AddThis Button END -->

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>if(!window.jQuery) {document.write('<script src="/js/jquery-1.8.2.min.js"><\/script>');}</script>
<script src="/js/jquery.flexslider-v1.8.min.js"></script>
<script src="/js/jquery.ba-hashchange-v1.3.min.js"></script>
<script src="/js/main-r6.js?051201"></script>
<script type="text/javascript" src="http://apis.google.com/js/plusone.js"></script>
<script src="http://connect.facebook.net/en_US/all.js#appId=221296744562462&amp;xfbml=1"></script>
<script>!function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? 'http' : 'https'; if (!d.getElementById(id)) { js = d.createElement(s); js.id = id; js.src = p + '://platform.twitter.com/widgets.js'; fjs.parentNode.insertBefore(js, fjs); } }(document, 'script', 'twitter-wjs');</script>
</body>
</html>

La variable ip_public contient :
Désolé pour tout ce texte mais je n'ai pas trouvé comment le spoiler afin de ne l'afficher que sur demande.

Comme vous pouvez le remarquer ça ne fonctionne pas.

J'aimerais récupérer la ligne suivante :
<li>Password: <strong>guSpUda8</strong></li>
Et plus précisément le mot de passe qui est : guSpUda8

ps : Attention, je ne sais si ça a une importance mais le MDP apparait deux fois dans la page HTML.

J'ai essayer de regarder sur le net et pour le moment je n'ai rien trouvé de concluant mis à part plusieurs pistes que je n'ai pas eu le temps d'explorer pour le moment mis à part quelques unes.

Je ne sais pas si je dois faire une liste de ces info pour rechercher dedans ensuite un peu comme dans ces exemples :
http://python.developpez.com/cours/a...age_12#L12-B-6
http://www.developpez.net/forums/d14...-split-python/

Ou alors utilisé les regex comme dans ces exemples :
http://www.developpez.net/forums/d12...onction-split/
http://www.developpez.net/forums/d11...ation-accents/
https://docs.python.org/2/library/re.html#re.split

Ou encore d'autres exemples trouvés un peu partout :
http://python.developpez.com/cours/D...ning_lists.php
http://www.imarend.com/tutorials/Pyt...ython10FR.html
http://www.jchr.be/python/manuel.htm#chaines

Malgré toutes ces ressources trouvées sur le net je reste bloqué et c'est pourquoi je viens vous demander votre aide.

Je ne sais pas si je dois partir sur la création d'une liste, ou utilisé regexp, ou autre ?
Je pensais commencer par rechercher la ligne où se trouvait le mot "Password:" puis supprimer toutes les autres et ensuite extraire mon mot de passe de cette ligne.
Mais c'est bien plus compliquer que ce que je pensais.

Me voilà donc ici, parmi vous, expert en Programmation Python pour que vous m'aidiez dans la résolution de mon problème.

Je remercie par avance toutes les personnes qui pourront m'aider et me conseiller.

Bonne soirée.

Cordialement,

Julien.