Hi, was Webentwicklung und alles in dieser Richtung angeht, davon habe ich praktisch keine Ahnung. Netzwerktechnik, also Zeugs a la MAC-/IP-Adressen, Routing usw., nur davon habe ich einigermaßen einen Überblick und programmiert habe ich bishher hauptsächlich in C/C+ (eig. fast nur). Auch Python ist/wäre Neuland für mich. Was ich gerne machen würde wäre ein kleines Programm oder Skript, das auf einem Linux-ARM laufen soll, das über keine grafische Oberfläche verfügt (*) (also auch kein, zumindest klassischer, Browser vorhanden) und sich auf einer Html-Webseite mit Usernamen uns Passwort einloggen können soll. Eine Captcha-Prüfung gibt es nicht. "Lediglich" sollen die beiden Textfelder ausgefüllt und eine Entertastenbetätigung oder ein Anklicken des Log-In-Buttons simuliert werden. Liege ich richtig, wenn ich tippe, dass für sowas Python die erste Wahl sein müsste? Könntet ihr mir bitte mit dem ein oder anderen Stichwort weiterhelfen, mit welcher Technik sowas am Besten und Einfachsten gemacht wird? Dann wüsste ich wonach ich suchen muss. Programmiertechnisch, denke ich, werde ich das irgendwie hingepfuscht bekommen. Bestimmt gibt es für sowas eine fertige Bibliothek, die "nur" ;) noch eingebunden und angewandt werden muss, oder nicht? Gibt es Python-Pros unter euch? Eine neue Sprache, Python, zu verwenden wäre hier kein notwendiges Übel sondern eine mehr als willkommene Gelegenheit. DANKE!! /edit (*) Das Linux (Arch) hat keine grafische Oberfläche, nicht nur das Progrämmchen.
:
Bearbeitet durch User
Das ganze ist mit Python wirklich super easy zu machen. Die Stichworte sind HTTP Get/POST Reqests, jenachdem wie der Login der Seite aufgebaut ist. Ein Beispiel wie man solche Requests absetzt: https://www.geeksforgeeks.org/get-post-requests-using-python/
Hängt von der Komplexität der Webseite ab.
Wie immer, es kommt darauf an, was deine eigentliches Ziel ist. für nur einloggen auf der Webseite reichen vielleicht wget oder curl. Wobei Curl auch eine Lib ist und sich auch aus C++ ansprechen lässt. Python3 mit den module Reqests ist definitv dein Freund, vielleicht brauchst du auch noch ein Cookie Jar, damit sollte sich eigentlich alles was du uns als Problem genannt hast lösen lassen und vorallen alles was genannt wurde ist bei Python schon im Standart mit dabei. Wenn du mit den Daten der Website auch noch was machen willst könnte das Schlagwort Webscrapping with Python sein. Info am Rande Python2 soll Ende des Jahres EOL Werden, daher empfehle ich Dir, Dich gleich mit Python3 zu befassen.
Mira B. schrieb: > Was ich gerne machen würde wäre ein kleines Programm oder Skript, das > auf einem Linux-ARM laufen soll, das über keine grafische Oberfläche > verfügt (*) (also auch kein, zumindest klassischer, Browser vorhanden) > und sich auf einer Html-Webseite mit Usernamen uns Passwort einloggen > können soll. Eine Captcha-Prüfung gibt es nicht. "Lediglich" sollen die > beiden Textfelder ausgefüllt und eine Entertastenbetätigung oder ein > Anklicken des Log-In-Buttons simuliert werden. Das kommt darauf an. Im Grunde genommen bietet HTTP(S) bereits selbst zwei eingebaute Authentifizierungsmechanismen, Base Auth und Digest Auth. Weil die aber häufig relativ unflexibel sind und meistens nicht sehr weit über die reine Authentifizierung hinaus gehen, also keine allzu feingranulare Autorisierung ermöglichen, entwickeln Webseitenentwickler oft eine eigene Authentifizierung. Das kannst Du relativ leicht unterscheiden: wenn die Webseite ein kleines System-Zusatzfensterchen öffnet und nach Username und Paßwort fragt, ist meistens Base oder Digest Auth im Spiel, wenn die Seite hingegen ein Eingabeformular im Design und Stil der Seite zeigt, haben die Entwickler selbst etwas implementiert. Login-Credentials für Base und Digest Auth können für alle entsprechenden Python-Bibliotheken (zB. requests oder urllib) eingestellt werden. Für eigenentwickelte Authentifizierungsmethoden mußt Du Dir üblicherweise das Formular anschauen, um die Namen der Eingabefelder heraus zu bekommen, und dann den Session-Cookie durchschleifen, den Du nach einer erfolgreichen Authentifizierung vom Server bekommst. Auch das ist mit den vorgenannten Python-Bibliotheken allerdings sehr einfach. > Liege ich richtig, wenn ich tippe, dass für sowas Python die erste Wahl > sein müsste? Sowas kann natürlich jede Skriptsprache, egal ob Perl, Ruby oder Python. Dennoch ist Python aus diversen Gründen eine besonders gute Wahl, wenn Du eine neue Sprache lernen willst. > Gibt es Python-Pros unter euch? Wenn es einen zum "Python-Pro" macht, die Sprache beruflich und privat zu benutzen und in den letzten zwölf Jahren kaum einen Tag erlebt zu haben, an dem man keinen Python-Code bearbeitet oder geschrieben hat: ja, dann gibt es Python-Pros unter uns. ;-) Liebe Grüße, Karl
Martin schrieb: > wget oder curl ...gehen nur mit HTTP(S) Base und Digest Auth... Der TO fragt außerdem nach einer Programmiersprache, nicht nach fertigen Downloadprogrammen. Vermutlich möchte er die Inhalte der Seite eben nicht nur herunterladen, sondern auch weiterverarbeiten -- zum Beispiel mit BeautifulSoup.
Beitrag #5988508 wurde vom Autor gelöscht.
Das Thema nennt sich "Browser automation". Macht man nicht mit wget, curl oder von Hand selbst, sondert verwendet eine moderne Lösung. Für Python z.B. Selenium, Javascript Puppeteer, und wie sie alle heißen. Javascript sieht dann z.B. so aus:
1 | const puppeteer = require('puppeteer'); |
2 | |
3 | async function login() => { |
4 | const browser = await puppeteer.launch(); |
5 | const page = await browser.newPage(); |
6 | await page.goto('https://example.com'); |
7 | |
8 | await page.type('#username', 'username'); |
9 | await page.type('#password', 'password'); |
10 | |
11 | await page.click('#submit'); |
12 | await page.waitForNavigation(); |
13 | |
14 | await page.screenshot({path: 'example.png'}); |
15 | |
16 | await browser.close(); |
17 | }
|
18 | |
19 | login(); |
Copy & Paste Tippfehler:
1 | async function login() => { |
muss natürlich:
1 | async function login() { |
sein...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.