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 : 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
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
Partager