Bonjour,
Je voudrais savoir comment Python peut excuter du code HTML.
Par exemple comment Python peut utiliser un lien HTML pour ouvrir une nouvelle page web. Merci à tous...
Bonjour,
Je voudrais savoir comment Python peut excuter du code HTML.
Par exemple comment Python peut utiliser un lien HTML pour ouvrir une nouvelle page web. Merci à tous...
En fait j'arrive à récupèrer les liens hypertextes d'1 page web mais comment puis-je ensuite utiliser ces liens pour ouvir une nouvelle page ?![]()
c'est flou ce que tu dit .. ouvrir une page dans quel contexte ? tu parle d'une vue web wxPython par exemple ?
Voici un aperçu de ce que je cherche :
Ceci ouvre la page pour afficher les tirages du mois de mars 2003
Cependant pour afficher les tirages suivants , le code source comporte le lien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 import urllib, urllib2 data = urllib.urlencode([('type_recherche','type' ),('tirage','1'),('mois' , '3'),('annee','2003')]) request = urllib2.Request("http://www.fdjeux.com/jeux/loto/loto_s_rechercher_res.php", data) f = urllib2.urlopen(request) html=f.read()
<a href="javascript:go(2)">
Comment puis-je utiliser ce lien pour afficher les pages web suivantes ?
bah .. mettre l'url a la place du code javascript ?
Il te faut plonger dans le code javascript, recuperer la fonction go puis comprendre comment le script transforme le go(2) en url.Cependant pour afficher les tirages suivants , le code source comporte le lien
<a href="javascript:go(2)">
Comment puis-je utiliser ce lien pour afficher les pages web suivantes ?
Bon Hack![]()
Utilise mechanize.Browser pour simuler un clic sur le lien en question.
salut,
je ne trouve aucune chaine <a href="javascript:go(2)"> dans la source de la page http://www.fdjeux.com/jeux/loto/loto...ercher_res.php
qu'est ce que c'est que cette suite de caracteres , stp ?
go(i) est une fonction javascript , ca permet de naviger dans l'historique ...
si i est negatif , c'est un retour arriere , si i est positif , c'est page suivante
Merci à tous pour vos réponses et désolé d'avoir tardé. Voici maintenant ma solution. Je réussis grâce au programme suivant à récupérer les tirages depuis 1997. Cependant bien que ce script fonctionne, je sais qu'il existe de meilleures solutions (surtout concernant la méthode find() ). Alors n'hésitez pas à suggérer des améliorations.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 # -*- coding: iso-8859-1 -*- import urllib, urllib2,urlparse,datetime # Pour le début je choisis le 1er tirage de l'année 1997 : compteur=1 annee=1997 # Année actuelle : aujourd_hui=datetime.date.today() annee_actuelle=aujourd_hui.year while 1: compteur+=1 var= 'type_recherche=type&tirage='+str(compteur)+'&annee='+str(annee) url=urlparse.urlunsplit(('http','www.fdjeux.com','/jeux/loto/loto_s_rechercher_res.php',var,'')) request = urllib2.Request(url) f = urllib2.urlopen(request) html=f.read() # Recherche du n° du tirage ( ! Il s'agit d'un numérotage depuis le début de l'année) : beginTag0 = '>Tirage N°' endTag0 = "<" startPos0 = html.find(beginTag0) while startPos0 > -1: endPos0 = html.find(endTag0,startPos0+1) if endTag0 == -1: break else: numero_du_tirage=int(html[startPos0+len(beginTag0):endPos0]) print "--- Tirage n°:",html[startPos0+len(beginTag0):endPos0] startPos0= html.find(beginTag0,endPos0+1) # Tous les tirages de l'année ont-ils été relevés ? if compteur>numero_du_tirage: annee_tirage=date_du_tirage[-4:] annee_tirage=int(annee_tirage) if annee_tirage<annee_actuelle: annee+=1 compteur=0 else: break # Recherche date du tirage : beginTag1 = '<td width="343" align="left" class="txtblanc11g" bgcolor="#DB0032"> ' endTag1 = "</td>" startPos1 = html.find(beginTag1) while startPos1 > -1: endPos1 = html.find(endTag1,startPos1+1) if endTag1 == -1: break else: date_du_tirage=html[startPos1+len(beginTag1):endPos1] startPos1 = html.find(beginTag1,endPos1+1) # Recherche des n° : premier_tirage=[] deuxieme_tirage=[] beginTag = '<div class="numero encercle">' endTag = "</div>" startPos = html.find(beginTag) while startPos > -1: endPos = html.find(endTag,startPos+1) if endTag == -1: break else: ### 1er tirage : if len(premier_tirage)<6: premier_tirage.append(int(html[startPos+len(beginTag):endPos])) startPos = html.find(beginTag,endPos+1) else: ### 2èmer tirage : deuxieme_tirage.append(int(html[startPos+len(beginTag):endPos])) startPos = html.find(beginTag,endPos+1) if len(premier_tirage)==6 and len(deuxieme_tirage)==6: premier_tirage.sort() deuxieme_tirage.sort() if deuxieme_tirage==premier_tirage: deuxieme_tirage=[] else: # --- INSCRIPTION DANS FICHIER --- fichier1=open('tirages_loto.txt','a') fichier1.write(date_du_tirage) fichier1.write(' --- 1er tirage --- ') for n in premier_tirage: fichier1.write(str(n)) fichier1.write('/') fichier1.write(' --- 2ème tirage --- ') for n in deuxieme_tirage: fichier1.write(str(n)) fichier1.write('/') fichier1.write('\n') fichier1.close()
Pour faire la recherche des tags, ça aurait pas été plus simple d'utiliser BeautifulSoup?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager