olive
Mai 19, 2021, 5:59
171
Bonjour,
Merci de modifier votre message en utilisant le code </> pour encadrer vos codes ou logs.
tutoriel cliquez ici
Ou vous pouvez envoyer un message privé à @sheldon-bot démarrer tutoriel avancé
pour apprendre à utiliser les menus
bonne journée
Bonjour, super boulot, j’aimerai adapter le code pour l’utiliser sur un autre site mais j’aimerai le comprendre pour voir ce qu’il faut que j’adapte, tu peux m’expliquer stp?
merci
olive
Mai 27, 2021, 5:26
174
Bonsoir,
Je ne peut pas faire un cour complet ici car ce serait trop long
un petit coup de google beautifulsoup4
et tu trouvera pleins d’exemples
un parmi d’autre beautifulsoup4
et la documentation
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
Bonne soirée
Chez moi le script plantait depuis hier, il faut remplacer tab_sun par tab-sun :
#! /usr/bin/env python3
import requests
import re
from sys import argv
from bs4 import BeautifulSoup
res = requests.get(argv[2])
soupe=BeautifulSoup(res.content, "html.parser")
print(int(re.findall(r'\d+',soupe.find_all(class_ = "tab-sun")[int(argv[1])].text[0:200].strip())[0]), end = '')
2 « J'aime »
olive
Décembre 3, 2021, 3:36
176
Merci de l’info je viens de corriger aussi chez moi
c’est aussi toutes les autres class avec des _ qui sont maintenant avec un -
corrigé aussi le 1er post
1 « J'aime »
Bben
Décembre 3, 2021, 3:37
177
Bien vu!
Ils ont modifier tous les underscore par des tirets… et y’en a un paquet dans les noms de classe de leur table!
Et il ont également modifier l’affichage de la date pour chaque jours…!
Salut @olive
j’ai pas retrouvé le post sur celui ci :
Mais j’ai aussi une erreur du style :
Erreur pour [Extérieur][Soleil][test] : Erreur sur /var/www/html/plugins/script/data/Soleil01 https://www.meteoblue.com/fr/meteo/semaine/saint-genis-laval_france_2979985 2>&1
valeur retournée : 1. Détails : Jours: Traceback (most recent call last): File "/var/www/html/plugins/script/data/Soleil01", line 13, in print(""+soupe.find_all(class_ = 'tab_day_short')[i].text.split()[0] +"", end = '') IndexError: list index out of range
Est-ce le même de cause ?
olive
Décembre 4, 2021, 11:31
179
Oui c’est la même
tiens la version corrigé du script (je sais plus non plus dans quel sujet c’était)
#! /usr/bin/env python3
import requests
from sys import argv
from bs4 import BeautifulSoup
res = requests.get(argv[1])
soupe=BeautifulSoup(res.content, "html.parser")
print("<table>", end = '')
print("<tr>", end = '')
print("<td style='width: 80px;border: 1px; border-collapse: collapse; color:white;height:20px;text-align:right;'>Jours: </td>", end = '')
for i in range(7):
print("<td style='width: 40px;border: 1px; border-collapse: collapse; color:red;height:20px;'>"+soupe.find_all(class_ = 'tab-day-short')[i].text.split()[0] +"</td>", end = '')
print("</tr>", end = '')
print("<tr>", end = '')
print("<td style='width: 80px;border: 1px; border-collapse: collapse; color:white;height:20px;text-align:right;'>Vent: </td>", end = '')
for i in range(7):
print("<td style='width: 25px;border: 1px; border-collapse: collapse; color:red;height:20px;'>"+soupe.find_all(class_ = 'wind')[i].text.split()[0] +"</td>", end = '')
print("</tr>", end = '')
print("<tr>", end = '')
print("<td style='width: 80px;border: 1px; border-collapse: collapse; color:white;height:20px;text-align:right;'>Direction: </td>", end = '')
for i in range(7):
print("<td style='width: 25px;border: 1px; border-collapse: collapse; color:red;height:20px;'>"+soupe.find_all(class_ = 'wind')[i].span['class'][2] +"</td>", end = '')
print("</tr>", end = '')
print("<tr>", end = '')
print("<td style='width: 80px;border: 1px; border-collapse: collapse; color:white;height:20px;text-align:right;'>Tmax: </td>", end = '')
for i in range(7):
print("<td style='width: 25px;border: 1px; border-collapse: collapse; color:red;height:20px;'>"+soupe.find_all(class_ = 'tab-temp-max')[i].text.split()[0] +"</td>", end = '')
print("</tr>", end = '')
print("<tr>", end = '')
print("<td style='width: 80px;border: 1px; border-collapse: collapse; color:white;height:20px;text-align:right;'>Tmin: </td>", end = '')
for i in range(7):
print("<td style='width: 25px;border: 1px; border-collapse: collapse; color:red;height:20px;'>"+soupe.find_all(class_ = 'tab-temp-min')[i].text.split()[0] +"</td>", end = '')
print("</tr>", end = '')
print("<tr>", end = '')
print("<td style='width: 80px;border: 1px; border-collapse: collapse; color:white;height:20px;text-align:right;'>Pluie: </td>", end = '')
for i in range(7):
print("<td style='width: 25px;border: 1px; border-collapse: collapse; color:red;height:20px;'>"+soupe.find_all(class_ = 'tab-precip')[i].text.split()[0] +"</td>", end = '')
print("</tr>", end = '')
print("<tr>", end = '')
print("<td style='width: 80px;border: 1px; border-collapse: collapse; color:white;height:20px;text-align:right;'>Soleil: </td>", end = '')
for i in range(7):
print("<td style='width: 25px;border: 1px; border-collapse: collapse; color:red;height:20px;'>"+soupe.find_all(class_ = 'tab-sun')[i].text.split()[0] +"</td>", end = '')
print("</tr>", end = '')
print("</table>", end = '')
2 « J'aime »
Bben
Décembre 4, 2021, 12:50
181
probablement, mais pas sur, il faut regarder si il y a toujours une class tab day short.
par exemple, pour la date de chaque jour je suis passé de :
subData['datetime']=soupe.find_all(class_ = "tab_day_long")[i].time["datetime"]
à
subData['datetime']=soupe.find_all(class_ = "date")[i]["datetime"]
parce qu’il n’affichent plus la date dans ce bloc pour les 2 premiers jours…
edit
il y a bien tab-day-short
, ou tu récupère dans le « text » le nom du jour en cours
edit2 : y’a eu un trou temporel???
Merci de l’explication du pourquoi du comment mais pas sur que j’intègre le truc si il y a un changement de nouveau dans 6 mois 1 an