Quelltext auslesen und rausfiltern?

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von TiTo.

    Quelltext auslesen und rausfiltern?

    Hallo zusammen,

    ich habe eine Frage bezüglich des auslesens eines Quelltextes und rausfiltern einiger Daten + Links!

    Ich habe vor, den Quelltext mehrerer Seiten(Links) auszulesen und die entsprechende Zip File(Link) in eine txt Datei speichern und anschließend die ausgelesenen Links(.zip files) runterladen.

    Quelltext vers. 1:

    HTML-Quellcode

    1. <td bgcolor="#cccccc"><div class="style1 style8" align="center"><a href="ZIP FILE">Click here</a></div></td>


    HTML-Quellcode

    1. <td style='background:#CCCCCC;padding:.75pt .75pt .75pt .75pt'>
    2. <p class=MsoNormal align=center style='text-align:center'>
    3. <span style='mso-fareast-font-family:"Times New Roman"'>
    4. <a href="ZIP FILE"><u><span style='color:blue'>Click here</span></u></a><o:p></o:p></span></p> </td>


    Gibt es nun eine Möglichkeit, anhand diesen kurzen Abschnitts, dass er mir autom. die Zip Files in eine .txt abspeichert und dann runterlädt?
    Ich möchte noch eine "Update" Funktion integrieren, wo er dann das gleiche mit der txt macht und dann mit der vorhandenen vergleicht und dann die neuen Links runterlädt?

    Ich sage schonmal Danke für eure Hilfe :)
    Btw.: Finde dieses Forum echt cool! Habe euch lange gesucht!

    Gruß
    TiTo
    Klar geht das!

    Benutze:
    1.) den Webclient zum Download des Quelltextes
    2.) Regex oder Split um die Links auszulesen
    3.) den IO.StreamWriter um die Links in einer TXT abzuspeichern
    4.) eine Funktion die die Links abgleicht mit neueren Links
    5.) den Webclient ebenfalls für den Download der Zipfiles

    Findest du alles hier im Forum!

    MFG
    GOOGLE ist mein Meister :)
    Okay vielen vielen Dank!!

    Dann werde ich es heute Mittag mal probieren !

    Danke :D ihr seit echt :thumbsup:
    Hab doch noch eine Frage.

    Und zwar ich muss mich vorher auf der Seite einloggen um die Links sehen zu können. Wie mache ich das mit VB?

    Gruß
    TiTo

    Edit by der_Kurt:
    keine Doppelposts, es gibt eine "Bearbeiten"-Funktion
    * Posts zusammengefügt *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    Hallo zusammen,

    also ich bin nun soweit, dass ich das Programm entwickeln kann.

    Ich sitze nur grade vor einem Problem, und zwar habe ich einen Abschnitt, wo ich ausgelesen und die Werte in Variablen gespeichert haben will, dass ich sie später in eine txt abspeichern möchte.

    So sieht der Quellcode aus:

    HTML-Quellcode

    1. <tr> <td>Notebook</td> <td>VPC</td> <td>Modell1</td>
    2. <td>Modell2</td> <td>Vers</td> <td><a href="https://link.zip">Image File</a></td> <td>Retail</td> <td>Datum</td> <td></td>
    3. </tr>


    Wie bekomme ich das am besten ausgelesen? Habe ca. den gleichen Quellcode 10mal.
    Wie oft willst Du das denn machen?
    Wenn es nur 1x ist, pack Dir die Datei in einen HTML-Editor und such Dir die interessanten Zeilen so raus.
    Wenn Du permanent Code analysieren willst, kannst Du auch einen HTML-Editor entsprechend modifizieren.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also mind. 20 mal gibts dieses Format

    HTML-Quellcode

    1. <tr>
    2. <td>Notebook</td>
    3. <td>VPC</td>
    4. <td>Modell1</td>
    5. <td>Modell2</td>
    6. <td>Vers</td>
    7. <td><a href="https://link.zip">Image File</a></td>
    8. <td>Retail</td>
    9. <td>Datum</td>
    10. <td></td>
    11. </tr>


    Und ich wollte das er eben den kompletten Quelltext durchläuft und mir in einer Zeile eben Modell1 Modell2 Vers Link Retail Datum ausgibt.

    Ich probiere grade mit diesem Code rum:

    VB.NET-Quellcode

    1. Dim pattern As String = "<td>([^<]*)</td><td>([^<]*)</td><td>([^<]*)</td><td><a href=""([^<]*)"">Image File</a></td><td>([^<]*)</td><td>([^<]*)</td>"
    2. Dim match1 As Match = Regex.Match(html, pattern)
    3. If match1.Success Then
    4. Dim 1, 2As String
    5. 1= match1.Groups.Item(1).Value
    6. 2= match1.Groups.Item(2).Value
    7. ListBox2.Items.Add(1& ": " & 2)
    8. Else
    9. MsgBox("error")
    10. End If


    Er gibt mir immer einen Error aus... Könnte mir da bitte jemand helfen?
    Betrachte doch diesen Code als XML-Code, öffne ihn mit XML-Werkzeugen und lies die Inhalte aus.
    Zum Umgang mit XML findest Du hier im Forum genug Information.
    Bilder
    • xml.jpg

      15,04 kB, 358×245, 163 mal angesehen
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Dim linkPattern As String = "<td>([^<]*)</td>\s*<td>([^<]*)</td>\s*<td>([^<]*)</td>\s*<td><a href=""([^<]*)"">([^<]*)</a></td>\s*<td>([^<]*)</td>\s*<td>([^<]*)</td>"
    2. Dim linkMatches As MatchCollection = Regex.Matches(html, linkPattern, RegexOptions.Singleline)
    3. For Each match As Match In linkMatches
    4. 'ListBox2.Items.Add(match.Value)
    5. Dim Modell, Version, Link, Retail, Datum As String
    6. Modell = match.Groups.Item(1).Value
    7. Version = match.Groups.Item(3).Value
    8. Link = match.Groups.Item(4).Value
    9. Retail = match.Groups.Item(6).Value
    10. Datum = match.Groups.Item(7).Value
    11. ListBox2.Items.Add(Modell & " : " & Version & " : " & Link & " : " & Retail & " : " & Datum)
    12. Next


    Habe es mit dem Code gelöst ! Danke :)