#1 Le 21/12/2021, à 06:49
- Pascal32
Script ou langage pour interagir avec une page Web ?
Salut tout le monde,
En ce moment, pour mon boulot, je cherche un outil (script ou langage) qui me permettrait d'interagir avec une page Web à partir d'un autre logiciel (si ce script ou langage pouvait convenir à Linux et Windows, ça serait le top).
Grosos-modo, je dois récupérer des données d'un logiciel qui accepte les scripts en VBS ou JS pour les transférer sur un logiciel qui n'est accessible qu'en ligne via des formulaires. Je me suis demandé si Python ne permettrait pas de faire ça, ou s'il n'existait pas un langage de script qui me permettrait de réaliser ces actions.
Je cherche sur le Web mais je n'arrive pas à trouver, je ne sais pas si je cherche bien. L'idée serait de pouvoir réaliser quelque chose comme ça, mais sans passer par Excel par exemple :
https://qwazerty.developpez.com/tutorie … vba-excel/
Merci !
Hors ligne
#2 Le 21/12/2021, à 07:51
- serged
Re : Script ou langage pour interagir avec une page Web ?
Il faut faire un script avec wget ou curl (plus puissant mais plus compliqué).
À toi de bosser là-dessus, en fonction de tes besoins !
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#3 Le 21/12/2021, à 08:06
- Pascal32
Re : Script ou langage pour interagir avec une page Web ?
Merci de ta réponse rapide !
Si j'ai bien compris, Wget n'est utile que pour le téléchargement et faire du travail hors-ligne, c'est ça ? Dans ce Curl me conviendrait plus, car toutes mes opérations doivent se réaliser en ligne pour pouvoir les valider, je vais essayer de regarder ça mais effectivement ça a l'air complexe.
Hors ligne
#4 Le 21/12/2021, à 12:29
- k3c
Re : Script ou langage pour interagir avec une page Web ?
regarde BeautifulSoup pour récupérer les données d'une page web
la doc
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
un exemple
https://www.twilio.com/blog/web-scrapin … tiful-soup
Debian 12 sur Thinkpad reconditionné
Hors ligne
#5 Le 21/12/2021, à 16:35
- noje
Re : Script ou langage pour interagir avec une page Web ?
Python va être une usine à gaz, après selon les données il va falloir filtrer, après ça dépend ton niveau en python.
Si tu es à l’aise avec les scripts bash, tu peux aller vers ce type de solution, très rapide et souple.
Curl avec ou sans « html2text » des renforts de « grep » et de « sed » au besoin « tr » et « xargs ».
Après il faut trouver les éléments pertinents ou les patterns qui reviennent, il peut y avoir une marge d’erreur avec les 2 langages, souvent avec des données variables imprévues.
Dernière modification par noje (Le 21/12/2021, à 18:43)
- LTS 18.04 & 22.04 - jwm - cwm - zsh
Les seules vraies erreurs sont celles que nous commettons à répétition.
Les autres sont des occasions d'apprentissage. (Dalaï Lama)
Hors ligne
#6 Le 21/12/2021, à 17:48
- Pascal32
Re : Script ou langage pour interagir avec une page Web ?
Merci de vos réponses !
Je ne suis pas du tout à l'aise en programmation, j'apprends sur le tas en fonction de mes besoins
En fait j'ai du mal m'exprimer : je ne cherche pas à récupérer des données depuis le web mais plutôt à insérer des données dans le web depuis d'autres applications (après, pouvoir faire les deux serait le top). Disons que je vais avoir différentes variables qu'il me faut manipuler dans des applications différentes (sous Windows principalement, mais si je peux avoir quelque chose qui fonctionne aussi sous Linux, je serais content parce qu'en dehors de mon travail je suis sous Ubuntu).
Je continue aussi à chercher de mon côté, que pensez-vous de Powershell ? A-priori c'est multi-plateforme et ça semble être le successeur de VBScript ?
Dernière modification par Pascal32 (Le 21/12/2021, à 17:50)
Hors ligne
#7 Le 21/12/2021, à 22:19
- k3c
Re : Script ou langage pour interagir avec une page Web ?
Powershell, c'est surtout Windows comme plate-forme
via une image docker, c'est utilisable sous Linux, mais bon, il te faudra installer docker et être à l'aise avec les containers
Debian 12 sur Thinkpad reconditionné
Hors ligne
#8 Le 24/12/2021, à 18:02
- LeoMajor
Re : Script ou langage pour interagir avec une page Web ?
salut,
sous nunux, gambas3 est le le langage le plus proche du VBA
powershell est remplacé par le shell courant (bash) ou un autre.
exemple
' gambas3 version 3.16.3
Public Sub Main()
exemple_http
exemple_shell
End
Private Sub exemple_http()
'https://www.w3schools.com/cssref/css_selectors.asp
Dim hc As New HttpClient, d As New HtmlDocument
Dim res As String, i As Integer
With hc
.URL = "https://www.laposte.net/accueil"
.Timeout = 2
.SSL.VerifyHost = True
.SSL.VerifyPeer = True
.TargetFile = "/tmp/laposte.html"
End With
res = hc.Download(hc.url)
d.HtmlFromString(res)
If res Then
Print res
File.Save(hc.TargetFile, res)
d.Save("/tmp/copie-laposte.html")
Endif
Print "---\n---> 1\n---"
For Each f As XmlElement In d.Root.GetChildrenByFilter("a[href*=https://www.laposte.fr]")
Print i, f.GetAttribute("href"), 0, f.type, f.element, f.name, f.value
i += 1
Next
Print "---\n--> 2\n----"
i = 0
For Each f As XmlElement In d.Root.GetChildrenByFilter("div[class]")
Print i, f.GetAttribute("class"), 0, f.type, f.element, f.name, f.value
i += 1
Next
Print "13", d.Root.GetChildrenByFilter("div[class]")[13].value
Print "---\n--> 3\n----"
i = 0
For Each f As XmlElement In d.Root.GetChildrenByFilter("div[id*=password]")
Print i, f.GetAttribute("id"), 0, f.type, f.element, f.Name, f.value
i += 1
Next
'Print "---\n---> elementnode\n---"
' For Each n As XmlNode In d.Root.AllChildNodes
' If n.Type = 1 Then Print n.Attributes, "!!", n.Name, ":", n.Value
' Next
'Print "---\n---> textnode\n---"
' For Each n As XmlNode In d.Root.AllChildNodes
' If n.Type = 2 Then Print n.Attributes, "!!", n.Name, ":", n.Value
'Next
End
Private Sub exemple_shell()
Dim sortie As String, motdepasse As String, ess As Integer = 1
System.Shell = "/bin/bash"
'1/ exemple
Shell "shopt -s globstar; printf '%s\n' " & User.Home &/ "Musique/**" To sortie
Print sortie
'recherche
Dim tmp As String[] = Split(sortie, "\n"), r As New Regexp
r.Compile("^.*/(0[2-3])_(.*)\\.mp3")
For Each item As String In tmp
If item Ends ".mp3" Then Print ".mp3", item
If item Then r.Exec(item)
If r.Count = 2 Then Print "backreferences \\1 \\2", r[1].text, r[2].text
Next
'2/ exemple
belote:
Print "sudo fdisk -l ; votre mot de passe ??"
Input motdepasse
Shell Subst("echo &1 | sudo -S fdisk -l &>/dev/stdout", motdepasse) To sortie
If sortie Match "incorrect" Then
Print "ko", ess
If ess = 3 Then
Print "3 essais maxi. fin"
Goto fin
End If
Inc ess
Goto belote
Else
Print sortie
Endif
Catch
Print Error.text, Error.Where, Error.Class
fin:
End
Si tu veux simuler les macros des tableurs genre Excel, tu peux utiliser du sql (sqlite3 par exemple) sous gambas3, et exporter (facultatif) vers libreoffice via unoconv ou pas.
Hors ligne