Hallo zusammen,
zunächst vorweg: ich bin Python Neuling.
Mein Problem: Ich habe einen RasPi in einem Netzwerk, welcher ein bestimmtes externes Portal über eine URL aufrufen soll.
Möchte ich im Firefox vom RasPi aus die Seite aufrufen funktioniert es nur manchmal. Hin und wieder kommt eine TimeOut Fehlermeldung. Ich habe auch schon eine Idee woran es liegen könnte (das ist jetzt hier aber nicht wichtig).
Kernfrage:
Wenn ich unter Ubuntu ein Terminal starte und "curl url-beispiel.hallo -vv" eingebe bekomme ich das Ergebnis der Anfrage angezeigt. Nun möchte ich für eine Analyse alle zwei Minuten über ein Python Skript automatisch eine Anfrage schicken und von dem Ergebnis die ersten drei Zeilen in eine csv Datei schreiben.
In erster Linie geht es mir aber um den Code, bzw. die Anfrage über das Python Skript. Ich weiß leider nicht, wie ich die curl Anfrage und die Antwort über ein Python Skript realisieren kann. Weiterhin weiß ich auch nicht so ganz, wie ich da googeln soll- und wirklich dramatisch komplex ist das Thema ja auch nicht...
Ich wäre sehr dankbar, wenn ihr mir einen Denkanstoß oder einen Tipp geben könnte.
Danke und freundliche Grüße!
Mit Curl request absetzen, response in csv schreiben
@__deets__: wenn ich die Frage richtig verstanden habe, geht es nicht um den Inhalt der Seite, sondern um die Debugausgabe von curl.
@LenThinker: statt ein externes Programm aufzurufen benutzt man am besten das passende Python-Modul, in Deinem Fall ist das `requests` für HTTP-Anfragen. Welche Information willst Du konkret in Deine csv-Datei schreiben?
@LenThinker: statt ein externes Programm aufzurufen benutzt man am besten das passende Python-Modul, in Deinem Fall ist das `requests` für HTTP-Anfragen. Welche Information willst Du konkret in Deine csv-Datei schreiben?
-
- User
- Beiträge: 3
- Registriert: Donnerstag 22. September 2022, 08:51
Danke für eure Antworten!
Ich bin einen großen Schritt weitergekommen. Mein Code sieht folgendermaßen aus:
import requests
response = requests.get("https:beispielurl")
print(response.status_code)
print(response.text.count)
i = response.text.split("\n")
ausgabe = i[0:4]
print(ausgabe)
Wie kann ich bei dem request als Parameter noch das -vv mitgeben? Weil darin finde ich dann meine nötigen Informationen...
Ich bin einen großen Schritt weitergekommen. Mein Code sieht folgendermaßen aus:
import requests
response = requests.get("https:beispielurl")
print(response.status_code)
print(response.text.count)
i = response.text.split("\n")
ausgabe = i[0:4]
print(ausgabe)
Wie kann ich bei dem request als Parameter noch das -vv mitgeben? Weil darin finde ich dann meine nötigen Informationen...
-
- User
- Beiträge: 3
- Registriert: Donnerstag 22. September 2022, 08:51
Unter anderem, dass ein proxy erreichbar ist und aufgelöst werden konnte und eine IP-Adresse. Das sind nur zwei Informationen von vielen. Ich muss die Anfrage erweitern, damit ich die vollständigere Antwort bekomme. mit curl -vv übers Terminal bekomme ich halt mehr angezeigt, als mit dem was ich jetzt in dem Python Skript über die jetzige Anfrage bekomme
Ansonsten versuche es mal mit PycURL. Dessen Curl-Objekt (https://pycurl.io/docs/latest/curl.html) besitzt eine set_verbosity()-Methode. Das Modul selbst ist ein Wrapper für libcurl. Ob die Debugging-Ausgaben genau wie beim direkten Programmaufruf sind, kann ich aber nicht sagen. Das müsstest du dann mal selbst ausprobieren.