Hallo,
anscheinend verbreitet sich die Unsitte, Teile von Websites mit Javascript zu erzeugen, damit man sie nicht so einfach auslesen kann. Beispiel: Man suche in www.versiontracker.com nach irgendeinem Programm, und man bekommt eine mit JS gene- rierte Tabelle.
Mit dem DOM-Inspektor in Firefox kann man das vollstaendige HTML sehen, aber bei einer Abfrage ueber urllib eben nicht.
Gibt es eine funktionierende Moeglichkeit, das rein program- matisch mit Python hinzubekommen, evtl. unter Verwendung ei- nes JS-Interpreters? Oder sonstwie? Vielleicht ganz verrueckt: kann man nicht mit PyPy das JS in Python umwandeln und aus- fuehren? Hat jemand hier schon so etwas gemacht?
PyPy und rueckuebersetzung werden dir hier nicht helfen. Es gibt da leider nicht wirklich viel das man ohne echten browser machen kann. Denn es geht ja nicht nur um das JS an sich, sondern auch um browser-spezifische Event + DOM-modelle. Jetzt hast du im Grunde zwei moeglichkeiten: - du benutzt einen Browser, den du irgendwie "einbetten" kannst und der den Zugriff auf das DOM erlaubt. Ich _glaube_ mit WebKit zB ist das moeglich. - du versuchst, einen Browser mit einer Seite von dir zu starten, die auf einem lokalen Server liegt. Diese muss dann ihrereseits mittels JS die gewuenschte Seite anfordern, deren DOM scrapen + das ganze an deinen Server zurueckliefern. *argl* - du gehst doch mit urrlib ran :) Denn was auch immer das JS auf der Seite macht um die Tabelle zu erzeugen: es hat dazu ein AJAX-call stattgefunden. Und den kannst du natuerlich auch "einfach" machen. Um das zu eruieren was dazu notwendig ist, ist der FireBug fuer den FF hochgradig zu empfehlen. Dort kann man zB sehen, welche requests alle von einer Seite ausgehen, in dem Net-Tab. Allerdings habe ich auf versiontracker gerade mal geschaut, und zB diese URL hier http://www.versiontracker.com/php/qs.php?mode=basic&by=releaseDate&action=search&str=connect&srchArea=macosx&dir=desc&pg=2 liefert mir direkt eine Tabelle. MfG Diez