Connexion sur zds

a marqué ce sujet comme résolu.

Salut, j'essaye de créer un script qui change automatiquement mon avatar toute les environs 5 secondes. Le 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
from urllib.request import Request, urlopen
from urllib.parse import urlencode
from time import sleep

urls = (
    'http://img1.mxstatic.com/wallpapers/900976145c9120f7abcba4864a11f484_large.jpeg',
    'http://image.noelshack.com/fichiers/2015/51/1450354396-gob-noel.png',
    'http://www.comsup.ma/mag/wp-content/uploads/2015/09/hacker-hacking-dark-hoodie.jpg',
)

zds_url = 'https://zestedesavoir.com/membres/parametres/profil/'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'

headers = {'User-Agent' : user_agent}
while 1:
    for url in urls:
        values = {'avatar_url':url}

        data = urlencode(values).encode()
        request = Request(zds_url, data, headers)
        handle = urlopen(request)
        print("Nouvel avatar : " + url)

        sleep(10)

Mais j'obtiens : urllib.error.HTTPError: HTTP Error 403: FORBIDDEN

Il y a-t-il un autre moyen de faire ? Merci :)

Tu reçois cette erreur car ton programme n'est pas connecté en tant que membre à Zds.

Si tu maîtrise PHP, la bibliothèque php_gd2 te permet de générer une image. La solution est de placer sur un serveur ton script PHP et de le programmer pour qu'il choisisse aléatoirement (ou de manière régulière) une image dans une liste que tu as défini. Ensuite dans les paramètres de ton compte Zds, tu précises le lien vers ton script.

A priori, il existe un équivalent en Python : la http://effbot.org/zone/pil-index.htm (voir sur StackOverflow). Mais il te faudra un serveur sur lequel tu puisse faire tourner du Python.

+2 -1

De 1/ tu n'es pas authentifié quand tu fais la requête, comme l'a signalé Croal.

De 2/ je présume que tu ne peux de toute façon pas poster de cette façon des données sur ZdS. Si je ne m'abuse, les formulaires sont protégés par un jeton CRSF

Et de toute façon non ! On n'envoie pas une requête toutes les 10 secondes à un service qu'on utilise, c'est pas très sympa :\ (et c'est le meilleur moyen que son adresse IP soit blacklistée)

L'alternative proposée par Croal est bonne.

PS : avec l'API des membres tu dois pouvoir changer ton avatar mais il faut passer un jeton d'authentification (histoire qu'on sache qui tu es).

+3 -0

Ce post là ne pourrait-il pas t'aider ? Sachant que le moyen employé est autorisé par le site ?

Blackline

C'est la méthode qu'utilise spacefox ^^

Sinon Javier propose une très bonne réponse, l'API est exactement là pour ce genre de facéties (et te fera un bon exercice ^^ ) (elle protège notamment des trop nombreuses requêtes via un throttling) et effectivement tu ne pourras pas injecter autrement car les formulaires sont tous protégés par des jetons CRSF.

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte