Seite 1 von 1

Python problem mit einem Skript (requests, bs4)

Verfasst: Donnerstag 30. Januar 2020, 00:38
von Pytronik
Servus!

Habe ein Skript gecodet, welches sich auf folgender Webseite regestriert:
https://stress95.com/en/auth/view?op=register

Nun klappt das ganze aber nicht so richtig. Ich habe wirklich alles probiert und umgehe cloudfare und poste ebenfalls einen token.

Code: Alles auswählen

import requests
import cloudscraper
import time
import random
from random import randrange
import colorama
from colorama import Fore, Style, init
from discord_webhook import DiscordWebhook, DiscordEmbed
import datetime
import threading
import names
from names import get_first_name, get_last_name
from bs4 import BeautifulSoup 
import lxml
from lxml import html


headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
}



scraper = cloudscraper.create_scraper(
        
        interpreter='nodejs',
        recaptcha={
        'provider': '2captcha',
        'api_key': 'mein key'
        
    }
        
        )


t = scraper.get(url, headers=headers)
soup = BeautifulSoup(t.text, 'html.parser')
stoken = soup.find_all(attrs={'name':'_AntiCsrfToken'})[0].get('value')
len(stoken)
print(stoken)


payload = {

    '_AntiCsrfToken': stoken,
    'firstName': 'Hi',
    'email': 'test@gmail.com',
    'password': 'mypassword',
    'action': 'register'
 


}



        
r = scraper.post(url, data=payload, headers=headers)

Re: Python problem mit einem Skript (requests, bs4)

Verfasst: Freitag 31. Januar 2020, 00:07
von __blackjack__
@Pytronik: „[K]lappt […] nicht so richtig“ ist keine sinnvolle Fehlerbeschreibung. Der offensichtliche `NameError` ist doch eigentlich selbsterklärend.

Der Code könnte auch in besserer Form sein. Ohne diese nach keinem erkenntlichem Kriterium geordneten Importe von denen sehr viele gar nicht verwendet werden. Von den Importen aus der Standardbibliothek wird kein einziger benutzt. Warum steht das da alles? Von den 15 Importzeilen sind nur 2 für den Code relevant.

Warum heisst ein Response-Objekt `t`? Einbuchstabige Namen sind selten eine gute Idee. Was bedeutet das `s` in `stoken`?

`find_all()` um vom Ergebnis dann nur das erste Element zu nehmen macht wenig Sinn. Ebensowenig wie das ``len(stoken)`` mit dessen Ergebnis nichts gemacht wird.

Und zu guter Letzt: Welchen Grund kann man haben bei Webshops automatisiert Benutzerkonten anzulegen für die einen niemand für ein Riesen*****loch halten wird?

Re: Python problem mit einem Skript (requests, bs4)

Verfasst: Freitag 31. Januar 2020, 01:13
von __deets__
Man sollte kaum glauben, wozu sneaker fans so bereit sind. Mein Büro ist in der Nähe des Sneakers N Stuff. Durch das Gedränge von jungen männers wenn die mal einen künstlich limitierten Sneaker anbieten muss man sich wahrhaft durchkämpfen 😬