HTML Tabellen-ID ermitteln

  • Hallo,

    ich möchte gerne aus einer Internetseite den Index (nte Tabelle) einer bestimmten Tabelle ermitteln, wobei sich die Position der Tabelle mit anderen Tabellen der Seite ändern kann.
    Den Index brauche ich um den Tabelleninhalt nach folgendem Schema in ein Array einzulesen.

    $oIE=_IE_Example("index.php")
    $oTable = _IETableGetCollection($oIE, 3)
    $tablearray = _IETableWriteToArray($oTable, True)

    folgendes führt aber nicht zum Ziel um den Index der Tabelle anhand der ID zu ermitteln, hat jemand einen Tip für mich.

    $oIE=_IE_Example("index.php")
    $oTableId = _IEGetObjById ($oIE, "such-ID")

    Gruß

  • Sag mal die Seite, sonst kann man recht wenig dazu sagen. Vor allem da die Sache "sich die Position der Tabelle mit anderen Tabellen der Seite ändern kann" sich stark ja Javascript anhört.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Die Seite befindet sich "hinter" einem Login. Die Anzahl der Tabellen ändert sich sporadisch.

    $oTableId = _IEGetObjById ($oIE, "id_die _ich_suche"); <- so geht es ja scheinbar nicht
    $oTable = _IETableGetCollection($oIE, $oTableId) ; <- wie kann ich den Index ermitteln
    $array = _IETableWriteToArray($oTable, True)

    Vor der Abfrage steht ein "refresh" und dann ist die neue Tabelle zu sehen.
    Ich möchte eigentlich "nur" den Index der Tabellen anhand der ID abfragen.

    ...bin für jeden Tip dankbar.

  • @ chip, danke
    Ich habe mir jetzt eine Notlösung gebaut.
    Die von mir gesuchte Tabelle hat eine bestimmte länge, wobei ich die Größe des Arrays abfrage.
    Ist zwar nicht so sauber wie ich es gerne hätte aber es wird wohl gehen :(
    btw.. beschäftige mich erst seit 4 Tagen mit Autoit und wäre nach wie vor für eine bessere Lösung als die meine dankbar.
    Google und diverse Foren haben seit Stunden leider nichts gebracht.

    Gruß..

  • Man kann halt ohne die Seite zu kennen nicht viel dazu sagen. Du könntest höchstens mal den kompletten Quelltext der entsprechenden Seite kopieren und bei http://pastebin.com/ hochladen. Evtl. kann man darauß dann schon was ableiten.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Der Inhalt der Tabellen ist vertraulich.. deshalb hinter einem login.
    Die Daten der Tabellen auf der Seite werden aus einer Datenbank geholt und es sind halt manchmal unterschiedliche anzahlen an Tab. vorhanden, wobei jede Tabelle ihre eigene ID hat.
    Ich möchte "einfach :)" nur den Index (Reihenfolg der Tabelle) einer bestimmten Tabelle mit einer bestimmten ID ermitteln.. sollte doch ohne Quelle verständlich sein hoffe ich.
    Ich dachte ja an soetwas wie
    $oTableId = _IEGetObjById ($oIE, "id_die _ich_suche")

    evtl. hast du ja noch eine zündende Idee wenn nicht, trotzdem danke für deine Antwort.. bist ja scheinbar der einzige in meinem Post.

    Gruß..

  • Ich hoffe ihr macht keine Scherze mit mir, wenn ihr zu meiner (leicht verständlichen) Frage einen HTML Quellcode mit Tabelle haben möchtet.
    Aber wenn Ihr das wirklich wollt... bitte hier ist ein Beispiel mit 3 Tabellen, nach einem manuellen reload können es auch mal zwei oder sogar eine sein.
    "einfach" nur den Index einer Tabelle anhand ihres ID-Namens ermitteln.

    irgentwas nach diesem Schema

    $oTableId = _IEGetObjById ($oIE, "id_die _ich_suche") ; <- so geht es ja scheinbar nicht
    $oTable = _IETableGetCollection($oIE, $oTableId) ; <- wie kann ich den Index ermitteln
    $array = _IETableWriteToArray($oTable, True)

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <table id="table_dolor" width="80%">
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    <p>&nbsp;</p>
    <table id="table_ipsum" width="80%">
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    <table id="table_lorem" width="80%">
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    <p>&nbsp;</p>
    </body>
    </html>

    Gruß...

  • Ich hoffe ihr macht keine Scherze mit mir, wenn ihr zu meiner (leicht verständlichen) Frage einen HTML Quellcode mit Tabelle haben möchtet.

    Wenn es so leicht ist, warum fragst du dann?


    OK damit sind wir schonmal ein Stück weiter, also kein javascript sonder ganz klassisch. Hat die Tabelle die du Suchst immer immer die gleiche ID oder ändert sich das auch?

    Wenn sie gleich bleibt, dann warst du fast richtig:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <IE.au3>
    $oIE = _IE_Example("table")
    $oTable = _IEGetObjById($oIE,"tableTwo")
    $wert = _IETableWriteToArray ($oTable,0)
    _ArrayDisplay($wert)

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

    6 Mal editiert, zuletzt von chip (6. Dezember 2011 um 10:15)

  • chip... vielen dank, genau so habe ich das gesucht. Die ID ist immer gleich.
    Es sollte für jemanden der sich schon länger mit Autoit beschäftigt leicht sein, ich kenne Autoit erst seit einigen Tagen.
    btw. Autoit ist ja mal richtig gut :)

    Gruß und danke für eure Hilfe