|
You last visited: Today at 08:57
Advertisement
WebAutomation mit Python
Discussion on WebAutomation mit Python within the Web Development forum part of the Coders Den category.
12/22/2018, 16:46
|
#1
|
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
|
WebAutomation mit Python
Servus,
Ich will nun von AutoIT auf Python umsteigen, da man damit wesentlich mehr machen kann.
Ich habe immer von den Silenium Webdriver Modul gelesen.
Soweit sogut.
Tutorial gesucht, installiert ( IDE = PyCharm ) -> wollte einen simplen website aufruf machen => nichts geht.
Es zeigt auch schon Fehler an, wenn ich das modul importieren will:
PHP Code:
from selenium import webdriver
driver = webdriver.Forefox()
driver.get("https://www.google.com/?hl=de")
Snippet:
Hat damit schonmal wer gearbeitet und hatte das gleiche Problem ?
Finde im web wenig dazubis auf java version, und selenium version.
Beides jedoch up2date
Gibt es alternativen, oder oft genützte Module für web Automatisierung ?
lg
|
|
|
12/22/2018, 16:50
|
#2
|
elite*gold: 100
Join Date: Apr 2008
Posts: 860
Received Thanks: 1,487
|
Bist du dir sicher, dass du "Firefox" richtig geschrieben hast?
|
|
|
12/22/2018, 17:46
|
#3
|
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
|
Quote:
Originally Posted by florian0
Bist du dir sicher, dass du "Firefox" richtig geschrieben hast?
|
hopla. unter firefox / Firefox findet er aber auch nix ^^
So habe eine Lösung gefunden.
Die Installer sowie pip funktioniert von hinten bis vorne nicht.
Werde das gleich noch am Notebook einrichten, und dann ne Lösung dazu schreiben
lg
|
|
|
12/22/2018, 20:04
|
#4
|
elite*gold: 400
Join Date: Nov 2008
Posts: 67,905
Received Thanks: 19,505
|
Hast du dir die  durchgelesen?
Für Firefox musst du zuerst das geckodriver Paket installieren
Je nach Aufgabenstellung ist es vielleicht viel effizienter und einfacher über direkte HTTTP(S) Requests dein Script zu erstellen? Das spart das öffnen von Firefox sowie geckodriver Paket und sowieso
Quote:
Originally Posted by Mad0ck
So habe eine Lösung gefunden.
Die Installer sowie pip funktioniert von hinten bis vorne nicht.
|
Glaube da liegt eher ein Fehler bei der Benutzung vor
PIP ist mächtig, solange man weiß wie man es benutzt
Wenn du ein Paket im userspace installieren möchtest, musst du ein --user anhängen
ohne --user musst du deine Shell mit Administratorrechten ausführen damit PIP ins globale Verzeichnis schreiben kann
das müsste so der häufigste Problem sein
|
|
|
12/22/2018, 21:01
|
#5
|
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
|
Quote:
Originally Posted by Der-Eddy
Hast du dir die  durchgelesen?
Für Firefox musst du zuerst das geckodriver Paket installieren
Je nach Aufgabenstellung ist es vielleicht viel effizienter und einfacher über direkte HTTTP(S) Requests dein Script zu erstellen? Das spart das öffnen von Firefox sowie geckodriver Paket und sowieso
Glaube da liegt eher ein Fehler bei der Benutzung vor
PIP ist mächtig, solange man weiß wie man es benutzt
Wenn du ein Paket im userspace installieren möchtest, musst du ein --user anhängen
ohne --user musst du deine Shell mit Administratorrechten ausführen damit PIP ins globale Verzeichnis schreiben kann
das müsste so der häufigste Problem sein
|
pip kopiert die lib, leider nicht in pythin Inst. verzeichnis.
Das ist das Problem.

Hier habe ich das ganze Problem beschrieben inkl Problemlösung
Uhm hab ehrlich gesagt keine Ahnung, wie ich das nun so mittels http(s) übergeben sollte in python.
Vorallen, wenn ich dann später Daten von der website auslesen will von diversen BG's.
Wenn du da nen link hättest, würd ich mich definitiv einlesen.
Will halt atm von nem AutoIt script, ein fach auf python umsteigen, da ich so kein MouseMove benützen muss etc.
Geht halt nur darum, dass ich mit Pyhton sowas noch nie gemacht habe, und nach langen googlen, ich hauptsächlich auf Selenium gestoßen bin zwecks webautomatisierung .-.
lg
|
|
|
12/22/2018, 21:32
|
#6
|
elite*gold: 400
Join Date: Nov 2008
Posts: 67,905
Received Thanks: 19,505
|
Quote:
Originally Posted by Mad0ck
pip kopiert die lib, leider nicht in pythin Inst. verzeichnis.
Das ist das Problem.

Hier habe ich das ganze Problem beschrieben inkl Problemlösung
Uhm hab ehrlich gesagt keine Ahnung, wie ich das nun so mittels http(s) übergeben sollte in python.
Vorallen, wenn ich dann später Daten von der website auslesen will von diversen BG's.
Wenn du da nen link hättest, würd ich mich definitiv einlesen.
Will halt atm von nem AutoIt script, ein fach auf python umsteigen, da ich so kein MouseMove benützen muss etc.
Geht halt nur darum, dass ich mit Pyhton sowas noch nie gemacht habe, und nach langen googlen, ich hauptsächlich auf Selenium gestoßen bin zwecks webautomatisierung .-.
lg
|
Deine derzeitige Lösung arbeitet ja mit Mausklicks und langem webview rendering vom Browser
HTTP(S) Requests sind dagegen die Anfragen an die Webserver die im Hintergrund ablaufen wenn du z.b. auf einen Link klickst
über eine GET Request holt man z.B. den Inhalt einer Webseite und über POST füllt man z.B. ein Formular aus
über Add-ons wie HTTP Header Live kann man diese Anfragen aus dem Hintergrund mitschneiden und manipulieren
Beispiel wie ich auf Reddit einen Thread erstelle:
Würde ich die POST Request so noch mal senden, hätte ich nun 2 Threads
Ich habe jedoch leider kein passendes Tutorial dafür
|
|
|
12/23/2018, 00:05
|
#7
|
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
|
Quote:
Originally Posted by Der-Eddy
Deine derzeitige Lösung arbeitet ja mit Mausklicks und langem webview rendering vom Browser
HTTP(S) Requests sind dagegen die Anfragen an die Webserver die im Hintergrund ablaufen wenn du z.b. auf einen Link klickst
über eine GET Request holt man z.B. den Inhalt einer Webseite und über POST füllt man z.B. ein Formular aus
über Add-ons wie HTTP Header Live kann man diese Anfragen aus dem Hintergrund mitschneiden und manipulieren
Beispiel wie ich auf Reddit einen Thread erstelle:
Würde ich die POST Request so noch mal senden, hätte ich nun 2 Threads
Ich habe jedoch leider kein passendes Tutorial dafür 
|
Hmm okey verstehe was du meinst.
Das mit "Get" wäre also so etwas wie das requests Modul mit dem beautiful Soup Modul.
Crawled html code, verarbeitet ihn, so das er manipulierbar ( bzw eher verarbeitbar) ist und schickt ihn wieder ab, mit den daten die man will.
Mein Anwendungsgebiet wäre zB folgendes.
Ich suche auf website X einen Button der Klasse btn_send mit der id "iwas".
Dieser Button soll gedrückt werden, wenn die checkbox darüber mit classe checkbox_all und der id "iwas" angehackt ist.
Und da hätte ich atm 0.0 Plan wie ich das mit Post und Get machen sollte.
Ich habe im Netz was über headless scripts gelesen ohne UI.
Script wird ausgeführt, ohne das der user iwas mitbekommt / sieht.
Hab noch nie sowas mit python gemacht, und auf git haben 3 Leute die so etwas bereits gemacht haben was ich vorhabe mit beautifulsoup und requets modul gemacht x.x
lg
|
|
|
12/23/2018, 00:21
|
#8
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
|
Quote:
Originally Posted by Mad0ck
Hmm okey verstehe was du meinst.
Das mit "Get" wäre also so etwas wie das requests Modul mit dem beautiful Soup Modul.
Crawled html code, verarbeitet ihn, so das er manipulierbar ( bzw eher verarbeitbar) ist und schickt ihn wieder ab, mit den daten die man will.
Mein Anwendungsgebiet wäre zB folgendes.
Ich suche auf website X einen Button der Klasse btn_send mit der id "iwas".
Dieser Button soll gedrückt werden, wenn die checkbox darüber mit classe checkbox_all und der id "iwas" angehackt ist.
Und da hätte ich atm 0.0 Plan wie ich das mit Post und Get machen sollte.
Ich habe im Netz was über headless scripts gelesen ohne UI.
Script wird ausgeführt, ohne das der user iwas mitbekommt / sieht.
Hab noch nie sowas mit python gemacht, und auf git haben 3 Leute die so etwas bereits gemacht haben was ich vorhabe mit beautifulsoup und requets modul gemacht x.x
lg
|
Da man als Entwickler nicht nur wissen sollte wie die Programmiersprache funktioniert würde ich dir raten dich einzulesen wie http generell funktioniert.
Wenn du das einmal verstanden hast kannst du mittels der Entwicklerkonsole (F12) im Netzwerktab einfach die Requests nachlesen und innerhalb wenigen Minuten nachbauen.
Da du z.B. geschrieben hast du willst das ein Button geklickt wird, wenn die checkbox darüber mit classe checkbox_all und der id "iwas" angehackt ist.
Das macht in diesem Denken wenig Sinn, da es so kein Button gibt sondern einfach nur Daten/Text (In diesem Fall Html).
|
|
|
12/23/2018, 10:26
|
#9
|
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
|
Quote:
Originally Posted by .ƒaℓsє.
Da man als Entwickler nicht nur wissen sollte wie die Programmiersprache funktioniert würde ich dir raten dich einzulesen wie http generell funktioniert.
Wenn du das einmal verstanden hast kannst du mittels der Entwicklerkonsole (F12) im Netzwerktab einfach die Requests nachlesen und innerhalb wenigen Minuten nachbauen.
Da du z.B. geschrieben hast du willst das ein Button geklickt wird, wenn die checkbox darüber mit classe checkbox_all und der id "iwas" angehackt ist.
Das macht in diesem Denken wenig Sinn, da es so kein Button gibt sondern einfach nur Daten/Text (In diesem Fall Html).
|
Werd mich heute mal einlesen.
Und mit der Klasse bzw ID meinte ich das gezielte suchen von Elementen der Website über deren Klassen und ID's (css).
Hab mich gestern evt. etwas unsachlich ausgedrückt. Hab auch viel **** geschrieben wie " classes ". Keine Ahnung was da genau los war ^^.
Jedenfalls danke für die Tipps.
Ob man nun sieht, dass sich ein Browser öffnet oder nicht ist mir vorerst egal.
Ich will erstmal machen, dass ich was in der Hand habe.
Danach gerne richtig, dafür weiß ich da dann schon wie ich besser an das ganze ran gehe.
Am liebsten wär mir ja nen kompletter Guide / TuT von ner Person die sowas öfters macht, um direkt zu sehen mit was und wie man richtig arbeitet.
Aber sowas gibts nunmal selten -> Darum probieren und später nochmals und nochmals und nochmals ^^.
Lg
|
|
|
12/23/2018, 13:52
|
#10
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
|
Quote:
Originally Posted by Mad0ck
Werd mich heute mal einlesen.
Und mit der Klasse bzw ID meinte ich das gezielte suchen von Elementen der Website über deren Klassen und ID's (css).
Hab mich gestern evt. etwas unsachlich ausgedrückt. Hab auch viel **** geschrieben wie " classes ". Keine Ahnung was da genau los war ^^.
Jedenfalls danke für die Tipps.
Ob man nun sieht, dass sich ein Browser öffnet oder nicht ist mir vorerst egal.
Ich will erstmal machen, dass ich was in der Hand habe.
Danach gerne richtig, dafür weiß ich da dann schon wie ich besser an das ganze ran gehe.
Am liebsten wär mir ja nen kompletter Guide / TuT von ner Person die sowas öfters macht, um direkt zu sehen mit was und wie man richtig arbeitet.
Aber sowas gibts nunmal selten -> Darum probieren und später nochmals und nochmals und nochmals ^^.
Lg
|
Was du mit Id und class meintest war mir klar, das wäre dann halt ein request um das Html zu bekommen und dieses kannst du dann belibieg parsen z.B. mittels Regex z.B :
Html kommt aus diesem Thread und es wird folgendes ermittelt:
Username => Mad0ck
Usertitle => WuubWuub
Level => 14
Aktuelle Erfahrung (bis nächstes Level ) in % => 93
Würdest du das ganze in PHP machen könnte ich dir helfen, da ich mit Python noch nie gearbeitet habe dort nicht...
Habe mal schnell gesucht und das  sieht recht gut aus.
|
|
|
12/23/2018, 14:45
|
#11
|
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
|
Quote:
Originally Posted by .ƒaℓsє.
Was du mit Id und class meintest war mir klar, das wäre dann halt ein request um das Html zu bekommen und dieses kannst du dann belibieg parsen z.B. mittels Regex z.B :
Html kommt aus diesem Thread und es wird folgendes ermittelt:
Username => Mad0ck
Usertitle => WuubWuub
Level => 14
Aktuelle Erfahrung (bis nächstes Level ) in % => 93
Würdest du das ganze in PHP machen könnte ich dir helfen, da ich mit Python noch nie gearbeitet habe dort nicht...
Habe mal schnell gesucht und das  sieht recht gut aus.
|
Hey,
Habe heute mal etwas bezüglich der http requests gesucht, und bin auch gut fündig geworden.
Habe auch einen User auf github gefunden, der coolerweise sogar nen Tutorial gemacht hat, wie man mittels post requests auf webelemente zugreifen kann.
Wo ich noch nicht ganz durchblicke, warum er einem Projekt Requests benützt.
Jedoch be einem anderen projekt auf git, beatuifulsoup ôo.
Sehe da kein einziges mal, dass er da eine Session aufbaut etc.
Im Video macht er das aber .-.
Habe mir das denk ich generell etwas zu einfach vorgestellt.
Man muss auch Sessions erstellen und tokens whatever absenden .
Komplettes Neuland für mich.
Und mir wurde vor langer Zeit mal gesagt, dass AutoIt bzw Python einfacher sei als wie PHP, um solche webAutomationen zu coden.
Ich werde einfach mal versuchen mich irgendwo einzuloggen mittels einen POST request.
Werde dazu wie @Der-Eddy sagte http live header benützen um die ganzen verlinkungen, tokens etc auszulesen :c
Eventuell wird es ja was.
Im Endefekt, muss man das glaub ich nur 1x selber hinbekommen, da es generell dann immer das gleiche Prinzip sein sollte.
( Hoffe ich zumindest ... Wobei es auch jason requests geben soll... )
Mal schaun. Zur Not melde ich mich :3
|
|
|
12/23/2018, 16:37
|
#12
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
|
Quote:
Originally Posted by Mad0ck
Hey,
Habe heute mal etwas bezüglich der http requests gesucht, und bin auch gut fündig geworden.
Habe auch einen User auf github gefunden, der coolerweise sogar nen Tutorial gemacht hat, wie man mittels post requests auf webelemente zugreifen kann.
Wo ich noch nicht ganz durchblicke, warum er einem Projekt Requests benützt.
Jedoch be einem anderen projekt auf git, beatuifulsoup ôo.
Sehe da kein einziges mal, dass er da eine Session aufbaut etc.
Im Video macht er das aber .-.
Habe mir das denk ich generell etwas zu einfach vorgestellt.
Man muss auch Sessions erstellen und tokens whatever absenden .
Komplettes Neuland für mich.
Und mir wurde vor langer Zeit mal gesagt, dass AutoIt bzw Python einfacher sei als wie PHP, um solche webAutomationen zu coden.
Ich werde einfach mal versuchen mich irgendwo einzuloggen mittels einen POST request.
Werde dazu wie @Der-Eddy sagte http live header benützen um die ganzen verlinkungen, tokens etc auszulesen :c
Eventuell wird es ja was.
Im Endefekt, muss man das glaub ich nur 1x selber hinbekommen, da es generell dann immer das gleiche Prinzip sein sollte.
( Hoffe ich zumindest ... Wobei es auch jason requests geben soll... )
Mal schaun. Zur Not melde ich mich :3
|
Wieso er zwei verschiedene Sachen nutzt kann ich dir nicht sagen, da ich diese nicht kenne und mit Python noch nicht gearbeitet habe.
Wenn du dich jetzt nicht gerade in eine stark geschützt Seite einloggen willst ist das kein großes Problem.
Die meisten Libs haben bereits ein "Cookie-Manager" integriert, somit müsstest du auch nur ein Request machen (Den Login-Request) und den rest (speichern des Cookies und mit schicken bei weiteren Requests) machen die meisten Libs schon von selber.
HTTP Header Live o.ä. Browser Plugins/Programme kann man natürlich nutzen aber in den Entwicklertools(F12) findest du eigentlich alles was du brauchst (Header, Urls, Parameter, Cookies, etc..).
|
|
|
12/28/2018, 12:22
|
#13
|
elite*gold: 0
Join Date: Dec 2018
Posts: 2
Received Thanks: 1
|
 hier ist eine gute Einführung in die Thematik.
|
|
|
01/04/2019, 13:33
|
#14
|
elite*gold: 313
Join Date: Oct 2014
Posts: 1,367
Received Thanks: 284
|
Quote:
Originally Posted by kno'
 hier ist eine gute Einführung in die Thematik.
|
HuHu,
Danke fürs Antworten und sorry für die späte Antwort.
Da es ein Problem mit Python gab, beim POST-Request abschicken, hat mir der Liebe false das gleiche in php gemacht x.x
Habs bis dato immernoch net hinbekommen, dass der Post richtig am server ankommt, obwohl alle Parameter eig stimmen müssten xD
Naja manches will wohl nicht
|
|
|
 |
Similar Threads
|
Python Problem mit der Verlinkung von Python Scripts
12/25/2017 - Metin2 Private Server - 5 Replies
Hallo liebe Community,
ich beschäftige mich derzeit mit der erstellung einer Funktion, damit ich bei diversen Gegenständen ein "+" im Lager,Handeln usw anhängen kann. (Dementsprechend befinden sich diese Änderungen in uiToolTip)
Nur hab ich leider aufgrund meiner mangelnden Python Kenntnissen ein Problem meine Funktion sieht so aus:
if app.SIGN_FOR_PLUS_ITEMS:
def AppendPlusOnUppitems(self):
import uiInventory
getItemVNum=playerm2g2.GetItemIndex
|
PROBLEM WITH PYTHON PLEASE HELP ME/ PROBLEM MIT PYTHON BITTE HELFEN MICH
05/26/2017 - Metin2 Private Server - 0 Replies
What are the values to change to move the search for the bonus in the item that is in the inventory's first slot?
I would like to move it to the second slot (python switcher)
Was sind die Werte, die geändert werden sollen, um die Suche nach dem Bonus in dem Element zu verschieben, der sich im ersten Slot des Inventars befindet?
Ich möchte es auf den zweiten Slot (Python Switcher)
|
[Python-Modul]EXP-Donator (kompatibel mit Python Loader)
11/23/2013 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 27 Replies
Moin,
da man mich danach gefragt hat und ich sowieso mal ein Beispiel für die Benutzung meines Python Loaders veröffentlichen wollte, habe ich die Gelegenheit genutzt und euch eben einen EXP-Spendebot geschrieben.
Man kann ihn einfach mit dem oben verlinkten Python Module Loader laden und ihn mit F5 aktivieren/deaktivieren.
Sobald ihr mehr als 99 Erfahrungspunkte habt (man kann nur in 100er Schritten spenden), werden alle Erfahrungspunkte an eure Gilde gespendet.
Wer Lust hat und...
|
Metin2 - Python - Wie Python Hacks verschlüsseln und Server überprüfen (GF/PServe)
09/23/2012 - Metin2 - 2 Replies
Ich wollte fragen,
wie man Python Hacks am besten Verschlüsselt ?
und wie man feststellen kann ob man auf einem GF / Pserver spielt. ?
|
Python + Eric Python IDE installieren ?!
07/05/2011 - General Coding - 0 Replies
hat sich erledigt.
|
All times are GMT +1. The time now is 09:01.
|
|