salut a tous jai mis en place un code pour recevoir des notifications de Vinted quand un article avec mes preferences est posté mais je rencontre toujours l’erreur 403 car je pense que Vinted bloque le scraping je suis plutôt débutant si qqn aurait trouvé une solution ce serait d’une énorme aide merci, j’ai pas mis mon url de preferences d’article car quand jai essaye ca marchait pas donc jai essaye de simplifier mais tjr le meme problème, voici mon code:
import requests
from bs4 import BeautifulSoup
import time
API_TOKEN = « a4jqrn7ft9z9kyq88fcf9oc97nwh9s »
USER_KEY = « uskvv3xs3xaogrrimjurer2mh5fd2i »
BASE_VINTED_URL = « Articles | Vinted »
notified_items =
def send_pushover_notification(message, title, url=None):
try:
data = {
« token »: API_TOKEN,
« user »: USER_KEY,
« message »: message,
« title »: title,
« url »: url,
« url_title »: « Voir l’article »
}
response = requests.post(« https://api.pushover.net/1/messages.json », data=data)
response.raise_for_status()
print(« Notification envoyée avec succès ! »)
except requests.exceptions.RequestException as e:
print(f"Erreur lors de l’envoi de la notification : {e}")
if response:
print(response.text) # Afficher la réponse de Pushover
def check_vinted(page):
try:
print(f"Vérification de la page {page} sur Vinted…")
params = {
‹ search_text ›: ‹ Nike trail ›,
‹ color_ids ›: ‹ 1 ›,
‹ size_ids ›: ‹ 208 ›,
‹ size_ids ›: ‹ 209 ›,
‹ size_ids ›: ‹ 210 ›,
‹ order ›: ‹ newest_first ›,
‹ page ›: page
}
headers = {
‹ User-Agent ›: ‹ Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 ›,
‹ Accept-Language ›: ‹ en-US,en;q=0.9 ›,
‹ Accept-Encoding ›: ‹ gzip, deflate, br ›,
‹ Connection ›: ‹ keep-alive ›,
‹ Referer ›: ‹ https://www.vinted.fr/ ›
}
response = requests.get(BASE_VINTED_URL, headers=headers, params=params)
response.raise_for_status()
soup = BeautifulSoup(response.text, ‹ html.parser ›)
articles = soup.find_all('a', class_='new-item-box__overlay')
if not articles:
print(f"Aucun article trouvé sur la page {page}.")
for article in articles:
item_id = article.get('data-testid')
if not item_id:
continue
item_id = item_id.split('-')[2]
if item_id in notified_items:
continue
notified_items.append(item_id)
link = article.get('href', '')
full_link = "https://www.vinted.fr" + link
details = article.get('title', 'Pas de titre')
send_pushover_notification(
f"Nouveau produit : {details}",
title="Nouvel article sur Vinted",
url=full_link
)
print(f"Article: {details} - Lien: {full_link}")
except requests.exceptions.RequestException as e:
print(f"Erreur lors de la récupération des données de Vinted : {e}")
for page in range(1, 6):
check_vinted(page)
time.sleep(10) # Attendre 10 secondes avant la prochaine vérification