Requests fehlende FormData Information

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
2fersen
User
Beiträge: 15
Registriert: Montag 19. November 2018, 14:24

Donnerstag 11. Juli 2019, 20:11

Hey Leute,
ich wollte mal probieren, mich mithilfe der Requests Library in eBay Kleinanzeigen einzuloggen, doch wenn ich mir die Formdata anschaue welche gesendet wird, habe ich ein Problem.

targetUrl
loginMail
password
_csrf
sind klar.

Doch was ist mit dem Fingerprint? Den CRSF Token kann ich einfach herausfischen von der vorherigen Seite, doch von dem Fingerprint finde ich überhaupt nichts im Quellcode. Wie komme ich an diesen?

Freue mich auf eure Antworten! :)
Sirius3
User
Beiträge: 9999
Registriert: Sonntag 21. Oktober 2012, 17:20

Donnerstag 11. Juli 2019, 22:27

Im Grunde ist es egal, welchen 128bittige Hexwert der Fingerprint hat. Er dient dazu, Deinen Browser zu identifizieren.
2fersen
User
Beiträge: 15
Registriert: Montag 19. November 2018, 14:24

Donnerstag 11. Juli 2019, 22:57

Oh achso, dann habe ich jetzt einfach mal meinen Fingerprint von meinem regulären Browser genommen, aber trotzdem kommt immer noch ein 403 Error.

Hier ist der Code mit dem ich arbeite.

Code: Alles auswählen

import requests
from bs4 import BeautifulSoup

session = requests.Session()

user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
headers = {'user-agent': user_agent}

with requests.Session() as c:
    url = 'https://www.ebay-kleinanzeigen.de/m-einloggen.html'
    c.headers = headers
    hp = c.get(url, headers=headers)

    soup = BeautifulSoup(hp.content, 'html.parser')
    temp = soup.find('input', {'name': '_csrf'})
    crsf = temp['value']
    fingerprint = 'c6e90fbf4ab48a8677469246c1236fbd'

    payload = dict(targetUrl='/', loginMail='email@email.de', password='pass', _crsf=crsf,
                   fingerprint=fingerprint)
    page = c.post(url, data=payload, headers=headers)
    print(page.text)
    print(page.status_code)

Antworten