Réécrire sur un fichier txt de zéro dans une boucle temporel
Bonjour à tous,
Tout d'abord je précise, je ne suis pas un expert python ça va faire un mois que je le pratique.
Avant de poster ce programme, j'ai fait de multiple recherche, mais je n'ai rien trouver sur le sujet.
Je vous expose mon objectif :
Scrapper des informations d'une seul page, tout les x temps car les données évolues régulièrement dessus, tout cela dans une certaine plage horaire.
Les données doivent être enregistrées à chaque tour de boucle sur le même fichier au format txt.
Se fichier doit être écrasé à chaque tour de boucle, je ne veux pas que les données soient écrit à la suite sur le fichier.
Maintenant j'expose mon problème:
Aucun soucis pour l'ensemble de la programmation, que ce soit la plage horaire, la boucle temporel, le scrapping.
Mon soucis, est que l'écriture du fichier ne repart pas d'une page blanche à chaque boucle temporel
Pourtant afin d'être sur, j'ai mis une fonction pour supprimer le fichier avant l'ouverture de celui-ci dans la boucle, je vérifie bien que le fichier est bien fermer à chaque boucle.
Et j'utilise bien la fonction 'w' pour ouvrir le fichier.
Rien n'y fait, a chaque boucle temporel, le scrapping se cumul au précédent lorsqu'il est écrit sur le fichier txt
Comme si il gardait en mémoire tampon le précédent scrapping.
Merci d'avance pour toute aide que vous pourriez m'apporter
Si besoin de la totalité du code n'hésitez pas a demander.
Voici la partie de mon programme qui ne doit pas marcher correctement:
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
| if egal_mlsec >= 0.5 :
connection = 0
print('mlsec_bis : ',egal_mlsec)
proxies_rand = choice(proxies)
browser_headers_rand = browser_headers[choice(mylist)]
proxies_rand = {"http": proxies_rand}
print('Proxies : ',proxies_rand)
try:
response = requests.get(url, headers=browser_headers_rand, proxies=proxies_rand, timeout=timeout)
if response.ok :
connection = 1
except Exception:
print(f"Proxy {proxies_rand} failed, trying another one")
if connection == 1 :
soup = BeautifulSoup(response.text, 'html.parser')
tds = soup.find_all('td')
if os.path.exists('scraping.txt'): #suppression du fichier txt
os.remove('scraping.txt')
if not os.path.exists('scraping.txt'): #vérification que le fichier est bien supprimée
print('fichier supprimé')
fichier = open('scraping.txt', 'w', encoding = 'utf-8') #Création du fichier txt
for td in tds:
links.append(td.text)
#Création du fichicher de scraping
with fichier as file:
for annonce in links:
annonce = annonce.replace(',','.')
file.write(annonce + ';') #écriture du fichier txt
if file.closed == False:
fichier.close()
print('Fichier fermé = ', file.closed) #Fermeture du fichier txt
Nowdate = Nowdate_bis |