Hello 🙂 Je me permets de vous appeler à l'aide !
Je commence tout juste à manipuler python, pour m'entrainer je me suis fixé comme objectif d'automatiser des actions sur un site internet (toutes les 3 heures, lancer une suites d'action pour valider un "vote").

J'ai réussi à me loguer sur le site internet avec identifiants, mdp, token avec la fonction requests.post
Mais vladadam, je suis bloqué depuis 2 jours...

J'ai des actions à réaliser sur le site mais mes requests.session.post ne fonctionnent pas :/
J'ai vu passer une erreur (405 dans un print) - lors de la navigation au seins du site.

Si vous avez une piste pour éclairer ma lanterne, je vous en remercierais !

Je début, j'ai récupérer des parties de code à droite et à gauche. Le code est sans doute très moyennement structuré

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
import requests
from requests import Session
from bs4 import BeautifulSoup as bs
import time
import json
 
 
with Session() as s:
    url = "https://moonflyff.fr/"
    log = "user/login"
    vote = "vote"
    headers_login = {
        "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
        "Origin": url,
        "Referer": url
    }
    site = s.get(url + log)
    bs_content = bs(site.content, "html.parser")
    token = bs_content.find("input", {"name":"_token"})["value"]
    login_data = {"email":"Test0",
        "password":"Test0000", 
        "_token":token
        }
    s.post(url + log,login_data,headers_login)
    vote_page = s.get(url + vote)
    #print(vote_page.text)
 
    headers_personnage = {
        "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36",
        "Origin": url,
        "Referer": url + vote
        }
    bs_content_vote = bs(vote_page.content, "html.parser")
    personnage = bs_content_vote.find("select", {"name":"character"}).find("option")["value"]
    personnage_data = {"character": personnage}
    #print(personnage_data)
    #r_1 = s.post(url + "update_character", personnage_data, headers_personnage)
    r_1 = s.post("https://moonflyff.fr/update_character", json={"character":"Cobra"})
    print(r_1.text)
 
 
    time.sleep(3)
    #s.get(url + vote)
    id_user = bs_content_vote.find("li", {"class":"text-white"}).find("strong").text
    personnage_validation = {"user": id_user}
    #print(personnage_validation)
    s.post(url + "server/1", personnage_validation,headers_personnage)
    #s.post(url + "/server/1", data = personnage_validation)
    time.sleep(3)
    s.post(url + "server/1/done", personnage_validation,headers_personnage)
    #s.post(url + "server/1/done", personnage_validation)
    time.sleep(4)
    #s.get(url + vote)
    print(vote_page.text)
Nom : 1.png
Affichages : 456
Taille : 1,54 Mo
Nom : 2.jpg
Affichages : 451
Taille : 181,9 Ko
Nom : 3.png
Affichages : 448
Taille : 1,43 Mo

Le résultat doit être soit :
- Ok (voir cf : screen 4)
- not ok (vous avez déjà voté il y a moins de 3 heures)

Merci d'avance