Mit BeautifulSoup Busplan parsen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Bastl
User
Beiträge: 9
Registriert: Montag 13. November 2006, 11:52

Mit BeautifulSoup Busplan parsen

Beitragvon Bastl » Montag 29. Januar 2007, 16:06

Hallo zusammen

ich habe vor kurzem mit Python angefangen und lese auch fleißig im Forum mit. Nun hätte ich ein kleines Problem:

Code: Alles auswählen

import urllib
from BeautifulSoup import BeautifulSoup
import time
t = time.localtime()

post = urllib.urlencode({
        "itdDateDay" : str(t[2]),
        "itdDateMonth" : str(t[1]),
        "itdDateYear" : str(t[0])[2:4],
        "itdTripDateTimeDepArr" : "dep",       
        "itdTimeHour" : str(t[3]),
        "itdTimeMinute" : str(t[4]),
        "place_origin" : "Regensburg",
        "typeInfo_origin" : "stop",
        "name_origin" : "Klenzestrasse",
        "place_destination" : "Regensburg",
        "typeInfo_destination" : "stop",
        "name_destination" : "Weichser Weg"
})

site = urllib.urlopen("http://195.30.232.155/bay/XSLT_TRIP_REQUEST2?language=de", post)
content = site.read()
site.close()
a = content
f = open("c:\\verbindungen.htm","w")
k = open("c:\\content.htm","w")
soup = BeautifulSoup(''.join(a))
a = str(soup.findAll("table", { "class" : "back test" }))
f.write(a)
k.write(content)
k.close()
f.close()
#print content


Ich versuche mit diesem Skript auf der Formularseite des RVV die nächsten Busverbindungen in eine bestimmte Richtung zu bekommen. Das klappt auch soweit ganz gut.
Nun hätte ich aber ganz gern die einzelnen Verbindungen als reiner Text damit ich sie z.B einfach in der Shell ausgeben kann.
Ich habe mir gedacht dass das vieleicht mit BeautifulSoup klappt, allerdings komm ich nach dem ersten findAll nicht mehr weiter.
Vieleicht könnte mir ja jemand einen Tip geben wie ich da jetzt am besten weitermachen könnte.
Vielen Dank schon mal.
cracki
User
Beiträge: 72
Registriert: Montag 25. Dezember 2006, 05:01

Beitragvon cracki » Montag 29. Januar 2007, 17:35

''.join(a) ist ueberfluessig. a ist ein string, zumindest vor dem ''.join()


ich seh, dass du die daten per http POST uebergibst. aber bitte stell mal ne url zusammen, damit sich leute ansehen koennen, was da zurueckkommt. nen versuch ists wert.

oder lade die seite irgendwo hoch, wo man dann gucken kann.

oder lies das BS tutorial/dokumentation.
...meh...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 29. Januar 2007, 19:14

Da kannst ja mal das als Ausgangspunkt nehmen und weiterschauen, was so möglich ist. Ab einem bestimmten Punkt, hatte ich keine Lust mehr, weil das HTML zum scrapen ziemlich hässlich ist.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Bastl
User
Beiträge: 9
Registriert: Montag 13. November 2006, 11:52

Beitragvon Bastl » Montag 29. Januar 2007, 21:17

Danke erst mal ich werd das gleich morgen mal ausprobieren.
pythonist
User
Beiträge: 40
Registriert: Sonntag 14. Mai 2006, 17:28

Beitragvon pythonist » Sonntag 11. Februar 2007, 11:16

findALL gibt ne Liste zurück also könntest du die dann in ner for schleife verarbeiten und dann formatiert ausgeben. Paste mal irgendwo n bischen HTML dann kann man dir sicher weiterhelfen.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder