none
HTML-Seite in Textformat bringen RRS feed

  • Frage

  • Hallo liebe Community,

    ich suche eine Möglichkeit aus einer .html-Seite  den Code zu extrahieren und diesen in eine .txt-Datei zu speichern.

    Hat jemand eine Idee, wie ich das bewerkstelligen könnte?

    Oder gibt es vielleicht dazu schon etwas? (Ich habe leider nichts gefunden!)

    Ich danke euch jetzt schon für eure Hilfe :)

    Montag, 11. Juli 2016 15:14

Antworten

  • Moin,

    die ganz doofe, aber oft funktionierende Methode ist, einfach den "innerText" aller Tags auszugeben. Das geht so.

    Wenn Du die Seite von einem Webserver abrufst,

    $page = Invoke-WebRequest "http://my.webserv.er"
    $doc = $page.parsedHTML

    Wenn die Seite aus einer HTML-Datei geladen wird,

    $doc = New-Object -com "HTMLFILE"
    $page = Get-Content "my:\web\page\file.html"
    $doc.IHTMLDocument2_write($page)

    Danach ist die Vorgehensweise identisch:

    foreach ($tag in $doc.all) {
      if (($tag.innerHTML -like $tag.InnerText) -and ($tag.InnerText)) {
            if ($tag.InnerText.Trim().Length -gt 0) {
                "$($tag.InnerText.Trim())" | Out-File "my:\text\file.txt" -Append
            }
       }
    }

    Krude, aber es funktioniert :-) Man kann es natürlich verfeinern, die Visibility der Tags prüfen und so, aber erst mal als Anhaltspukt sollte es Dich in die richtige Richtung schubsen.


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    • Als Antwort markiert mk-vsh Dienstag, 12. Juli 2016 08:52
    Montag, 11. Juli 2016 15:37

Alle Antworten

  • Moin,

    die ganz doofe, aber oft funktionierende Methode ist, einfach den "innerText" aller Tags auszugeben. Das geht so.

    Wenn Du die Seite von einem Webserver abrufst,

    $page = Invoke-WebRequest "http://my.webserv.er"
    $doc = $page.parsedHTML

    Wenn die Seite aus einer HTML-Datei geladen wird,

    $doc = New-Object -com "HTMLFILE"
    $page = Get-Content "my:\web\page\file.html"
    $doc.IHTMLDocument2_write($page)

    Danach ist die Vorgehensweise identisch:

    foreach ($tag in $doc.all) {
      if (($tag.innerHTML -like $tag.InnerText) -and ($tag.InnerText)) {
            if ($tag.InnerText.Trim().Length -gt 0) {
                "$($tag.InnerText.Trim())" | Out-File "my:\text\file.txt" -Append
            }
       }
    }

    Krude, aber es funktioniert :-) Man kann es natürlich verfeinern, die Visibility der Tags prüfen und so, aber erst mal als Anhaltspukt sollte es Dich in die richtige Richtung schubsen.


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    • Als Antwort markiert mk-vsh Dienstag, 12. Juli 2016 08:52
    Montag, 11. Juli 2016 15:37
  • Das funktioniert schon mal ganz gut :) Vielen vielen lieben Dank :)
    Dienstag, 12. Juli 2016 08:52