Gleichzeitige HTTP GET Anfragen mit Rückantwort

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
fl0x
User
Beiträge: 2
Registriert: Montag 23. März 2015, 19:21

Hallo,

ich habe bereits die Suchfunktion benutzt und das Internet nach meinem Problem abgesucht, aber leider bis jetzt nichts gefunden das mir weiterhilft.
Meine Scripte führe ich auf einen MicroController Raspberry Pi 2 Model B Betriebsystem Raspian(Debian Wheez) bzw. alternativ in VirutalBox Debian 7.8. aus.

Mein Ziel ist es mehrere HTTP GET Anfragen zu senden.
Gleichzeig sollten es aber nicht mehr als 20 sein.
Den URL's sollte außerdem am Ende ein ein Zähler angehängt werden.

Edit: Dies soll keine Programmiersprache darstellen sondern nur besser veranschaulichen was ich realisieren möchte.

Code: Alles auswählen

max_requests=20

while(i <=1000)
  while(max_requests <= 20)
    i++
    urlopen("http://www" + adresse + ".de/index.php?index=" + i)

  auf request warten und auslesen
    max_requests = max_requests -1

  if request failed exit()
Ich wollte es mit dem Module requests Methode async versuchen bekomme aber folgende Fehlermeldung:

Code: Alles auswählen

from requests import async
ImportError: cannot import name async
Ich bringe etwas Erfahrung von anderen Programmiersprachen mit, bin aber in Python noch ziemlicher Anfänger.
Bitte nehmt etwas Rücksicht.

Vielen Dank im Voraus.

Gruß

Fl0x
Zuletzt geändert von fl0x am Montag 23. März 2015, 21:08, insgesamt 1-mal geändert.
Sirius3
User
Beiträge: 17746
Registriert: Sonntag 21. Oktober 2012, 17:20

@fl0x: Bevor Du mit asynchroner Programmierung anfängst, solltest Du dringend ein Python-Tutorial durcharbeiten, um die Grundlagen von Python drauf zu haben. Das was Du da geschrieben hast, ist irgende Programmiersprache, wo noch etliche geschweifte Klammern fehlen.
BlackJack

@fl0x: Dann hast Du entweder eine `requests`-Version wo es `async` noch nicht gibt, oder eine wo es das nicht mehr gibt. Letztendlich läuft es auf eine weitere Bibliothek hinaus (`grequests` oder `requests-futures` stehen zum Beispiel in der Dokumentation verlinkt) oder selber schreiben hinaus.
fl0x
User
Beiträge: 2
Registriert: Montag 23. März 2015, 19:21

@Sirius3
Danke für deine Antwort.
Das sollte keine Programmiersprache darstellen sondern nur besser veranschaulichen was ich versuche zu realisieren.

@BlackJack

Code: Alles auswählen

from grequests import async
grequests ist bereits installiert führt aber zur selben Fehlermeldung.

Mit requests-futures habe ich es auch bereits versucht nur bekomme ich die request in keine Liste oder Array.
Ein Beispiel wie oben beschrieben würde mir evtl. weiterhelfen.
BlackJack

@fl0x: Wie kommst Du auf die Idee das man etwas mit dem Namen `async` aus `grequests` importieren kann? Ein bisschen in dem wirklich bisschen Dokumentation muss man schon lesen. ;-)

Bei den Futures musst Du es etwas stärker versuchen. Dann klappt das schon. Sich mit dem Future-Konzept auseinander zu setzen und den Funktionen in diesem Modul könnte dabei helfen.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

mit aiohttp läasst sich sowas auch gut umsetzen. Benötigt allerdings min Python 3.3.

Gruß, noisefloor
Antworten