salut
je voudrais savoir la valeur de cette fonction
pour l'url
Code : Sélectionner tout - Visualiser dans une fenêtre à part str(int(url[-3:-1] + url[-1] + 1)
par example
http: //www.nabulsi.c...d=102&sssid=103
merci a vous
salut
je voudrais savoir la valeur de cette fonction
pour l'url
Code : Sélectionner tout - Visualiser dans une fenêtre à part str(int(url[-3:-1] + url[-1] + 1)
par example
http: //www.nabulsi.c...d=102&sssid=103
merci a vous
Salut,
Un peu dur a dire, vu que le bout de code que tu donnes n'est pas valide.
Si c'est ca a la place:
C'est un affreux moyen d'incrementer le dernier chiffre de l'URL que tu proposes. En gros pour http://....ssid=103 le bout de code renverra "104". Mais y'a tellement de moyens que ca ne fonctionne pas (+/- de 3 chiffres, parametres de la requete dans un autre ordre, ...)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>>str(int(url[-3:-1] + url[-1]) + 1) >>> # identique a: >>>str(int(url[-3:]) + 1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 >>> import re >>> url = "http: //www.nabulsi.c...d=102&sssid=103" >>> res = re.search("(?P<url>.+=)(?P<value>\d+)", url) >>> res.group('url') 'http: //www.nabulsi.c...d=102&sssid=' >>> res.group('value') '103'
Salut,
Si le but est de récupérer les caractères après le dernier "=", .rsplit() est quand même plus intuitif que les "regexp":
Dans tous les cas, la réponse au PO:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 >>> url = "http: //www.nabulsi.c...d=102&sssid=103" >>> int(url.rsplit('=')[-1]) + 1 104
se résume quand même à aller pianoter à la console "pour voir".
Et il est facile d'obtenir rapidement une réponse par soi-même plutôt que de poster et attendre que quelqu'un veuille bien prendre la peine de...
- W
salut,
si c'est le dernier oui, il s'agit d'un paramètre dans l'URI, rien ne garantit qu'il soit placé à la fin, pour moi les regex ont du sens pour peu qu'on se contente pas de matcher le dernier signe '=' justement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> import re >>> url = 'http: //www.nabulsi.c...d=102&sssid=103' >>> re.findall('sssid=(\d+)', url) ['103']
hmm, dans ce cas (parser une URL "en général"), vous avez la bibliothèque urllib.parse qui fait déjà le boulot:
- W
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 >>> from urllib.parse import urlparse, parse_qs >>> urlparse(url) ParseResult(scheme='http', netloc='', path=' //www.nabulsi./', params='', query= 'd=102&sssid=103', fragment='') >>> parse_qs(_.query)['sssid'] ['103'] >>>
mon travail se base sur enigma2 et IDLE ne me convient pas
Ne me dites pas que vous vous souviendrez de toutes les fonctions
enfin merci a vous
en fait - à titre indicatif et toujours histoire de donner à ce thread un peu plus d'intérêt que ne revêt la question initiale - dans l'expression que tu donnes il n'y a que 2 fonctions, str() et int(), la première sert à convertir en string, la seconde à convertir en nombre entier, donc c'est assez simple à se souvenir effectivement
la seule difficulté vient de ce qu'on appelle le slicing qui consiste en fait à prendre une portion de chaine (pour le dire simplement), ainsi chaine[-3] donnera le 3e caractère de la chaine en partant de sa fin, tandis que chaine[5:8] extraira la sous-chaine composée des caractères 5 (exclu) à 8 (inclu) de la chaine chaine initiale
en clair c'est une expression très simple, sans subtilité particulière, et IDLE suffit tout à fait pour l'interpréter, et pour peu qu'on ait codé autre chose qu'un print 'hello world' ça se fait même de tête
![]()
en bref
moi je croyais que le code était destiné au url
mais après avoir lu la réponse de dahtah j'ai su qu'il y a un problème avec l'url
j'ai fouiné et j'ai trouvé d'ou venais le probleme
il fallait juste prendre en considération
j'ai donné un bout de code rien que pour savoir et connaitre mon erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part <li><a href="ss_cat.php?id=104&sid=111&ssid=112">coucou</a></li>
de mon coté j'ai trouvé la solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 def load_data(self, data, main_url): movies = re.findall('<li><a href="(.+?)">(.+?)</a></li>', data) y = 1 for each in movies: url, title = each if y < 6: blabla= title[0:2] # title = title.replace(blabla, '') url = 'blobloblo' + url.replace('?', '?pg=1&').replace('ss_cat', 'sss_cat') + '&sssid=' + str(int(url[-3:-1] + url[-1]) + 1) self.letter_list.append(show_letter(title, url)) y += 1
et si vous voulez continuez a faire de la discussion .......
merci dahtah
Partager