Bonjour a tous Je récupère les données dans la variable "players" et j’aimerai l’écrire dans un csv ou json Le problème est qu’il m’inscrit seulement la dernière ligne avec la methode 'w' Avec la méthode 'a’, il m’inscrit bien toutes les lignes mais n’efface pas les précédentes et ce n’est pas ce que je veux Voici mon code :
import requests
from bs4 import BeautifulSoup
import csv
import pandas as pd
import json
import re
for i in range(5):
url = 'https://www.futbin.com/21/players?page='+ str(i) +'&ps_price=1100-5000&version=gold_rare&sort=likes&order=desc'
response = requests.get(url)
if response.ok:
soup = BeautifulSoup(response.text,'lxml')
tbody = soup.find('tbody')
extracted = tbody.findAll('tr', {'class': re.compile('player_tr_\d+')})
for td in extracted :
name = td.find('a', class_='player_name_players_table')
#print(name.text)
detail = td.find('span', class_= 'players_club_nation')
if detail:
club = detail.find('img')
clubLink = club['src']
#print(clubLink)
pays = club.find_next('img')
paysLink = pays['src']
#print(paysLink)
league = pays.find_next('img')
leagueLink = league['src']
#print(leagueLink)
imgPlayer = td.find('img', class_='player_img')
if imgPlayer:
imgPlayerLink = imgPlayer['data-original']
#print(imgPlayerLink)
note = name.find_next('td')
#print(note.text)
position = note.find_next('td')
#print(position.text)
version = position.find_next('td')
#print(version.text)
prix = version.find_next('td')
#print(prix.text)
# data to be written row-wise in csv fil
players = [
name.text,
clubLink,
paysLink,
leagueLink,
imgPlayerLink,
note.text,
position.text,
version.text,
prix.text ]
#print(players)
with open('data.json', 'w') as outfile:
json.dump(players, outfile)
Je dois pas être loin de la solution mais je ne trouve pas
Si quelqu’un voit l’erreur
Merci d’avance
+0
-0