hello
SVP
je suis coincé je cherche une façon d'extraire idp , page
merci a vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part def getinfolink(self, idp, page):
hello
SVP
je suis coincé je cherche une façon d'extraire idp , page
merci a vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part def getinfolink(self, idp, page):
Salut,
Afin de récupérer les valeurs de plusieurs variables à l'intérieure d'une fonction il faut utiliser return comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 def getinfolink(self, idp, page): ..... ..... return idp,page
salut
j'ai un problème avec cette fonction car elle met beaucoup de temps pour afficher la liste
merci a vous
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 def videolink(self, url): self.menulist = [] request = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.', 'Connection': 'Close'}) data = urllib2.urlopen(request).read() startp = data.find('<div id="port0" onMouseOver="javascript:cambiard') endp = data.find('var h = jQuery.noConflict') zone = data[startp:endp] platz = re.findall('<div id="gggg">\n<a id="rut.*?" href="(.*?)">', zone) # print platz for lien in platz: title = lien.replace("./?match=","").replace('_',' ') url = link + lien.replace('./','/').replace('[','').replace(']','').replace("'","")+'_lgfr_' # farid = lien.replace("./?match=","").replace('_',' ') urlvid = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.', 'Connection': 'Close'}) data = urllib2.urlopen(urlvid).read() aime = re.findall('<div id="videoz">\n<div name=.*?>\n<iframe src="(.*?)"', data) # print aime for vidlink in aime: video_LINK = vidlink self.menulist.append(StreamListEntry(title, video_LINK, '0', '00.')) self['menulist'].l.setItemHeight(36) self['menulist'].l.setList(self.menulist)
Tu peux encore découper ta grosse fonction en plus petites... trop d'instructions à gerer...(C'etait juste un conseil... pas la solution au problème )
Salut,
Qu'est-ce que tu appelles beaucoup de temps ? Ton code charge une page, avec une regex extrait une série de liens puis ensuite charge toutes ces nouvelles pages et les parcourt à nouveau avec une regex.
Le temps que cela prend est fonction de la taille de la première page, du nombre de pages suivantes à charger et du serveur (ex: sur le site de arte TV Guide je charge et parse 13 pages parfois en 2,5 secondes et certaines fois en 12 secondes).
Un conseil, utilise plutôt le module HTMLParser qui est beaucoup plus rapide que les regex. Et plus sûr aussi, les regex sont considérées comme pratique non fiable avec les pages html.
Partager