Seite 1 von 1

Mit BeautifulSoup Busplan parsen

Verfasst: Montag 29. Januar 2007, 16:06
von Bastl
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.

Verfasst: Montag 29. Januar 2007, 17:35
von cracki
''.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.

Verfasst: Montag 29. Januar 2007, 19:14
von Leonidas
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.

Verfasst: Montag 29. Januar 2007, 21:17
von Bastl
Danke erst mal ich werd das gleich morgen mal ausprobieren.

Verfasst: Sonntag 11. Februar 2007, 11:16
von pythonist
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.