import requests # J'appelle ici la bibliotheque requests pour faire des requetes html
from bs4 import BeautifulSoup # ici beautifulsoup pour parcourir et rechercher des balise html
entrer = 0 # un simple compteur pour savoir ou on en est dans les pages downloader
for nb in range(1, 21): # Je parcours avec la bouble range les pages 20 pages, le 21 n'est pas compris
# la variable nb sert de numero de page
# on afecte a url le lien avec la variable pour le numero de page
url = f"https://www.autoscout24.fr/lst?atype=C&cy=F&desc=0&page={nb}&search_id=ygqajqpcvt&sort=standard&source=listpage_pagination&ustate=N%2CU"
# Le code 200 veut dire que la connexion a reussi il y a plein d'autre code possible comme le fameux code 404 page not found.
page = requests.get(url) #on place les donneees de la requete dans une variable page.
if page.status_code == 200: # si le status_code de la requetes est 200 on execute le code.
soup = BeautifulSoup(page.content, 'html.parser') # On parse la page qui sert a mettre en forme pour y faire des recherche par balise
titles = soup.find_all('h2') # on va chercher toute les balise h2 ou le titre du vehicules se trouvais avec
# find_all qui cherche toute les referrence de h2 il y a find aussi qui peut envoyer le premier element de la page.
# On cherche maintenant les balise p avec les class 'Price_price__APlgs PriceAndSeals_current_price__ykUpx'
# encore une fois avec find_all pour toute les repere. remarquer qu<on utilise beautifulsoup avec la variable soup dou l'on la affecter
prices = soup.find_all('p', class_='Price_price__APlgs PriceAndSeals_current_price__ykUpx')
# on ouvre un fichier data.text en monde ajout "a" remarquez qu<il y a d<autre option a open comme "r" pour en lecture seul
# "w" pour en mode ecriture mais qui effache les entrer precedante. etc...
# on entre aussi un encodage utf-8
with open('data2.txt', 'a', encoding='utf-8') as data:
# on parcours les balise h2 dans la liste titles creer precedament
for h2 in titles:
# on cherche les balise span la balise h2 pour oter ce qui n<est pas la marque de la voiture
span = h2.find('span')
# si on trouve un span
if span:
span.decompose()
# on ecrit les donnees dans un fichier texte, zip sert a faire plusieur iteneraire en meme temps
for h2, price in zip(titles, prices):
data.write(f"Title: {h2.get_text(strip=True)}\n")
data.write(f"Price: {price.get_text(strip=True)}\n")
data.write("\n") # Ajouter une ligne vide entre chaque entrée
entrer += 1
print(entrer)
Commentaires
Publier un commentaire