inhalt einer internetseite abrufen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 5. Mai 2006, 20:05

jens hat geschrieben:
Leonidas hat geschrieben:msvcrt.getch() ;)

Availability: Windows.

Wo steht denn dass er es für Unix braucht?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Abooya
User
Beiträge: 8
Registriert: Freitag 5. Mai 2006, 15:29

Beitragvon Abooya » Freitag 5. Mai 2006, 20:09

ich bin bekennender win XP-nutzer
@icepacker: also ich benutze es immer nur zum anhalten :lol:
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 5. Mai 2006, 20:19

Aber gerade bei solchen Kleinigkeiten würde ich dann besser auf das portable raw_input() oder sys.stdin.read(1) setzten ;)
Wobei ich beim letzteren nicht weiß, ob es das gewollte auch wirklich tut... Kann das mal jemand testen???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 5. Mai 2006, 20:34

jens hat geschrieben:Wobei ich beim letzteren nicht weiß, ob es das gewollte auch wirklich tut... Kann das mal jemand testen???

Nein tuts nicht. Du kannst so lange tippen wie du willst, aber es wird nur das erste Byte welches du eingetippt hast gelesen und zurückgegeben, bis du Enter drückst. Bei weiteren Aufrufen werden die anderen Bytes die du eingegeben hast ausgegeben (also wird sozusagen der stdin-Puffer abgearbeitet).

Unter Linux gibt es getch() auch, das wird dann über Curses abgewickelt.

Zu guter Letzt ncoh etwas, was cross platform geht.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Abooya
User
Beiträge: 8
Registriert: Freitag 5. Mai 2006, 15:29

Beitragvon Abooya » Samstag 6. Mai 2006, 11:08

ok, nochmal vielen dank an alle!
jetzt habe ich noch eine letzte frage (wirklich die letzte :wink: )
und zwar würde ich gerne eine weitere internetadresse aus dem inhalt auslesen, die mir die nummer der entsprechenden adresse ausgibt.
Beispiel:
Bei

Code: Alles auswählen

funktion("<frame src='http://www.google.com'></frame>","http://*'>")

sollte er mir 10, 33 ausgeben (falls ich mich nicht verzählt habe :P)
bei den python docs finde ich aber nur funktionen, die mir die bytenummer zurückgeben :(
achso, und ausserdem fände ich es nett, wenn mir jemand gleich noch eine funktion zum splitten von strings geben könnte.

mit hoffenden Grüssen
Abooya
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Samstag 6. Mai 2006, 12:32

Abooya hat geschrieben:achso, und ausserdem fände ich es nett, wenn mir jemand gleich noch eine funktion zum splitten von strings geben könnte.

"stringobjekt".split()

Ich weiß nicht so recht, wie du auf 10 kommst, ich komme auf etwa 19.. :?:
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Abooya
User
Beiträge: 8
Registriert: Freitag 5. Mai 2006, 15:29

Beitragvon Abooya » Samstag 6. Mai 2006, 18:25

ok, ich habe den string jetzt einfach 2-mal gesplittet, habe aber doch wieder ein kleines problem: der server quittiert meine 2. anfrage mit einem 400: Bad request :cry: Die Webseite, die ich versuche aufzurufen, ist eine ganz normale abc.php?aweir=aowehobn.
Der Code ist momentan dieser:

Code: Alles auswählen

import msvcrt, httplib

socket = httplib.HTTPConnection('abc.com', 80)

header = {'User_Agent': 'Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)'}

socket.request('GET', '/hic.php?hoc=blubb', '', header)
response = socket.getresponse()

if response.reason == 'OK':
   sessid = response.getheader('set-cookie')[10:42]
   inhalt= response.read()
   print(inhalt+'\n')
   header['cookie'] = 'PHPSESSID='+sessid
   print(sessid+'\n')


#splitten
lalilu=inhalt.split('<frame name="topframe" scrolling="auto" src="')
lalilu2=lalilu[1].split('">')

#neuer socket-request
lalilu3='/'+lalilu2[0]
print(lalilu3)
socket.request('GET',lalilu3, '', header)
response2 = socket.getresponse()

#wenn antwort== ok
if response2.reason=='OK':
   inhalt2=response2.read()
   print(inhalt2)
else:
   print('Ein Fehler beim Kontaktieren der 2. Datei ist aufgetreten')


msvcrt.getch()


Vielleich weiss sogar jemand zu diesem Problem eine Lösung?
this.toLowerCase(); ;)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder