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...
Version imprimable
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 ?:arf:
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 lienCode:
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.Citation:
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:
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?