Bearbeitung eines Web-URL

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

marcel_at_work
****
Beiträge: 121
Registriert: Sa, 24.04.2010 15:51

Bearbeitung eines Web-URL

Beitrag von marcel_at_work » So, 28.07.2019 01:25

Hallöchen, liebe Gemeinde... :)

vor einiger Zeit hatte ich einmal einen Webcrawler in Basic gebastelt, um spezifische Datensätze aus dem WWW in eine DB zu extrahieren.
Aktuell stelle ich mir die Frage, ob dies eigentlich auch umgekehrt möglich ist... Stellt OOo irgendwelche Funktionen zur Verfügung, um Argumente an eine Webapplikation zu übertragen?
In der Arbeit muss ich mehrere Applikationen auf verschiedenen Systemen benutzen, in die teils dieselben Dokumentationen/Datensätze einzutragen sind. Die einzige Verbindung wäre eine Web-GUI, wenn ich darauf von meinem Tablet (WIN, OOo Calc) zugreifen könnte.

Kann man mit Basic Kontrollfelder auf einer Website ausfüllen und betätigen?

Liebe Grüsse (neuerdings) aus der Schweiz

Marcel

Hiker
****
Beiträge: 154
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Bearbeitung eines Web-URL

Beitrag von Hiker » So, 28.07.2019 07:37

Hallo,

es gibt Webseiten bei denen die Parameter über die URL mitgeliefert werden können. Das geht dann von jeder Sprache, wenn Du eine URL aufrufen kannst.

Für einen generellen Ansatz würde ich aber eher das in LibreOffice schon enthaltene Python statt Basic empfehlen. Die verfügbaren Libraries sind da geeigneter.

Mfg Jörn
Libre Office 6.0.7 (Win8.1 Pro, Win 10 Pro) / Libre Office 6.0.7 (Win 7 Pro) / AOO (Win 7)

marcel_at_work
****
Beiträge: 121
Registriert: Sa, 24.04.2010 15:51

Re: Bearbeitung eines Web-URL

Beitrag von marcel_at_work » So, 28.07.2019 15:01

Hallo Jörn,

danke für die schnelle Antwort. :)

Ich hab mich grad fünf Stunden mit dem Thema URL-Kodierung befasst und tolle neue Einblicke in dieses Thema gewonnen. Aber wie du schon erwähntest - es sind nur einige Websites. Es muss eine URL-Parameter-Abfrage in die Website integriert sein, wie z.B. in Suchfeldern, etc.
Mit Basic scheint dies auf den ersten Blick so nicht möglich zu sein.

Python scheint nach ersten Recherchen recht simple aufgebaut zu sein, aber ich hatte damit bis jetzt noch keinerlei Berührungspunkte. Python könnte man ja dann genauso auch in OpenOffice benutzen? Ich würde eigentlich nicht wegen nur einer bestimmten Funktion die GUI ändern wollen, an die ich mich seit über zehn Jahren gewöhnt habe.
Ein Editor ist verfügbar und mit ein paar ersten Scripts habe ich auch grad schon experimentiert... 8) . Wie würde es dann weiter gehen? Ausführliche Dokumentationen in deutsch? Kleine Denkanstöße?

Viele Grüße

Marcel

Stephan
********
Beiträge: 11239
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Bearbeitung eines Web-URL

Beitrag von Stephan » Mo, 29.07.2019 05:30

Es muss eine URL-Parameter-Abfrage in die Website integriert sein, wie z.B. in Suchfeldern, etc.
Mit Basic scheint dies auf den ersten Blick so nicht möglich zu sein.
Na eigentlich schon, oder verstehe ich die Frage miss?

Hier beispielsweise ein simpler Aufruf des Google-Routenplaners per Basic:

Code: Alles auswählen

Sub route()
	Startadresse = "Berlin"
		txt = "Der Start ist in Berlin." & CHR(13)
		txt = txt & "Geben Sie die Postleitzahl der Zieladresse ein. (z.B. 80689)"
		Zieladresse = Inputbox(txt, "Route mit Google") 
		If Zieladresse = "" Then
			Msgbox "Eingabe fehlt"
			Exit Sub
		End If
    strHyperlink = "http://maps.google.com/maps?f=d&hl=de&saddr=" & Startadresse & "&daddr=" & Zieladresse
	execute_datei(strHyperlink)
End Sub

Sub execute_datei(par As String)
	On Error goto raus
	Dim starten as object 
	starten = createUnoService("com.sun.star.system.SystemShellExecute")
	starten.execute(ConvertToUrl(par), "", 0)
	Exit Sub
	
	raus:
	Msgbox "Fehler",,""
End Sub
Ein weiteres Beispiel ist auch das Suchtool das ich fürs Forum hier, programmiert habe:
viewtopic.php?f=16&t=54305#p262142


Gruß
Stephan

Hiker
****
Beiträge: 154
Registriert: Mo, 08.09.2014 21:34
Wohnort: Berlin

Re: Bearbeitung eines Web-URL

Beitrag von Hiker » Mo, 29.07.2019 07:29

https://towardsdatascience.com/controll ... ceb22c5f08
als kleines Beispiel für Interaktion.
Es gibt auch z.B Automate the boring stuff with Python..

@Stefan
Bei Basic käme ich nicht mehr weiter, sobald eine Webseite nur POST statt in die URL kopierte Parameter kennt, oder ich evtl mit dem Mailserver reden muss.
Gebe aber zu, dass ich es nicht versucht habe,
da ich weiss, dass ich ähnliches in Python schneller hinbekomme.

Es geht auch nicht um eine Beschränkung der Sprache an sich, aber bei Python findet man in dem Bereich mehr Beispiele.

Mfg, Jörn
Libre Office 6.0.7 (Win8.1 Pro, Win 10 Pro) / Libre Office 6.0.7 (Win 7 Pro) / AOO (Win 7)

Stephan
********
Beiträge: 11239
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Bearbeitung eines Web-URL

Beitrag von Stephan » Mo, 29.07.2019 08:14

Mein(e) Beispiel(e) verfolgte(n) nicht die Absicht anzudeuten das Basic besser geeignet wäre, allein programmiere ich selbst nicht in Python und die Basic-Beispiele hatte ich fertig rumliegen (der gepostete Code stammt aus einer Firmendatenbank, wo er in einen Dialog integriert ist).
Es geht auch nicht um eine Beschränkung der Sprache an sich
OK, aber Basic ist hier (Office-Automatisierung) schon beschränkter, denn ich glaube man darf zweifelsfrei sagen: alles was in Starbasic geht, geht auch in Python, jedoch nicht alles was in Python geht, geht auch in Starbasic.



Gruß
Stephan

marcel_at_work
****
Beiträge: 121
Registriert: Sa, 24.04.2010 15:51

Re: Bearbeitung eines Web-URL

Beitrag von marcel_at_work » So, 25.08.2019 22:08

Hallo Leute,

danke für die tollen Tipps!

Sorry, dass ich mich jetzt erst wieder melde. Da die ersten Versuche, mich mit "Python via Basic" vertraut zu machen, ziemlich daneben gingen, habe ich an meinem restlichen Programm-Code weitergearbeitet, um mal wieder ein paar Erfolge feiern zu können. :lol:

Ich habe mich die letzten Tage (mit Übersetzer) intensiv in die englische Dokumentation der Python-Implementierung eingelesen und seit gerade eben endlich eine laufende Funktion mit optionaler Werteübergabe/Rückgabe, um mit einem Python-Script zu interargieren.
Ich muss sagen, dass es im Netz ziemlich verwirrende und komplexe Lösungen zu geben scheint, aber es geht auch relativ einfach, wie im folgenden Beispiel zu sehen ist.

Wen's interessiert:

Das Basic-Makro lautet:

Code: Alles auswählen

Sub runPythonFromDocument()
	Dim oScriptProvider As Object
	Dim oScript As Object
	Dim returnFromPython
	Dim sScript As String
	Dim sLocation As String
	
	sScript	  = "basic.py$testReturn"
	sLocation = "user" 'alternativ: share, document

	oScriptProvider = thisComponent.getScriptProvider()
	oScript = oScriptProvider.getScript("vnd.sun.star.script:" & sScript & "?language=Python&location=" & sLocation)
	
	returnFromPython = oScript.invoke(Array(), Array(), Array())
	print returnFromPython 
End Sub
Das Python-Script, welches (während der Entwicklung) im Benutzerverzeichnis unter \Scripts\python abgelegt ist, lautet:

Code: Alles auswählen

def testReturn():
    z = "test"
    return z
Eine Einbindung der Python-Scripte direkt in das Dokument ist z.B. über die APSO-Erweiterung möglich.
Ich hätte nicht gedacht, dass eine Interaktion von Basic mit einem Webserver überhaupt zu realisieren ist, aber Python scheint die richtige Wahl. :lol:

Ich werde euch die Tage berichten, wie es vorangegangen ist...

Viele Grüße,

Marcel

@Jörn: Ich bin jetzt gänzlich auf LibreOffice umgestiegen. Die Einbindung von Python ist wohl identisch, aber LibreOffice ist weiterentwickelt und mich störte schon seit Beginn meiner Arbeit mit OpenOffice die fehlende Zeilennummerierung.

@Stephan: Du hattest es richtig verstanden, aber nur wenige Websites haben eine Parameter-Abfrage per "?" integriert. Dies scheint mir nur sinnvoll, wenn andere Applikationen direkt auf öffentliche Daten zugreifen sollen. Und eine Übergabe von Login-Daten über URL-Parameter wäre auch nicht besonders zu empfehlen. > Aber mit Python/Basic eröffnen sich gerade ganz neue Welten! 8)

Antworten