HTML Teile "zurecht schneiden"?

  • Hmmm, wie mache wenn ich nur einen Teil vom HTML-Code angezeigt bekommen möchte im embedded browser?

    Beispiel von fefes blog:

    Code
    <h2><a href="/" style="text-decoration:none;color:black">Fefes Blog</a></h2>  <b>Wer schöne Verschwörungslinks für mich hat: ab an felix-bloginput (at) fefe.de!</b>  <p align=right>Fragen?  <a href="/faq.html">Antworten!</a>  Siehe auch: <a href="http://alternativlos.org/">Alternativlos</a><p><h3>Wed Jul 6 2011</h3>

    Wenn ich als Ausgabe nur einen Teil, wie z.B. folgendes haben möchte:

    Code
    <b>Wer schöne Verschwörungslinks für mich hat: ab an felix-bloginput (at) fefe.de!</b>  <p align=right>Fragen?  <a href="/faq.html">Antworten!</a>

    hmmm ich hatte es mit _StringBetween() versucht, aber es ist ja kein array !?

    Wie mache ich das jetzt?


    au3:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiEdit.au3>
    #Include <File.au3>
    #Include <WinAPI.au3>
    #include <Constants.au3>
    #include <IE.au3>
    #include <Misc.au3>
    #include <Array.au3>
    #include <String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #NoTrayIcon

    dim $termGUI = ""
    dim $oIE1 = _IECreateEmbedded()

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI_1 = GUICreate("Test-Anzeige", 1000, 1000, 0, 0)
    $termGUI = GUICtrlCreateInput("", 5, 5, 300, 25, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_NOHIDESEL))
    GUICtrlSetState($termGUI, $GUI_FOCUS)
    $hButton_1 = GUICtrlCreateButton("Search", 310, 5, 50, 25, 0)
    $hButton_2 = GUICtrlCreateButton("Clear", 365, 5, 50, 25, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab1 = GUICtrlCreateTab(5, 40, 990, 935)
    $TabSheet1 = GUICtrlCreateTabItem("Tab1")
    $GUIemb1 = GUICtrlCreateObj($oIE1, 15, 65, 970, 895)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $TabSheet2 = GUICtrlCreateTabItem("Tab2")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ;##########################################

    Do
    $msg = GUIGetMsg()
    Select
    Case $msg = $hButton_2
    GUICtrlSetData($termGUI, "")
    GUICtrlSetState($termGUI, $GUI_FOCUS)
    Case $msg = $hButton_1
    $sHTML = BinaryToString(InetRead("http://blog.fefe.de/"))
    ;~ $aMatch = StringRegExp($sHTML, ????????????????????????????????????????????)

    [/autoit] [autoit][/autoit] [autoit]

    _IENavigate($oIE1, "about:blank", 0)
    _IEDocWriteHTML ($oIE1, $sHTML)

    [/autoit] [autoit][/autoit] [autoit]

    EndSelect
    Until $msg = $GUI_EVENT_CLOSE;To be able to close the Window!
    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • hmm irgendwie dachte ich das in der Hilfe gelesen zu haben, aber wohl doch nicht...

    naja aber wenn ich es einfüge, dann klappt das trotzdem nicht:

    [autoit]

    $sHTML = BinaryToString(InetRead("http://blog.fefe.de/"))
    $sHTMLcut = _StringBetween($sHTML, '<h2><a href="/" style="text-decoration:none;color:black">Fefes Blog</a></h2>', 'Siehe auch: <a href="http://alternativlos.org/">Alternativlos</a><p><h3>Wed Jul 6 2011</h3>')

    [/autoit][autoit][/autoit][autoit]

    _IENavigate($oIE1, "about:blank", 0)
    _IEDocWriteHTML ($oIE1, $sHTMLcut)

    [/autoit]

    Kompletter Code:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiEdit.au3>
    #Include <File.au3>
    #Include <WinAPI.au3>
    #include <Constants.au3>
    #include <IE.au3>
    #include <Misc.au3>
    #include <Array.au3>
    #include <String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #NoTrayIcon

    dim $termGUI = ""
    dim $oIE1 = _IECreateEmbedded()

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI_1 = GUICreate("Test-Anzeige", 600, 600, 0, 0)
    $termGUI = GUICtrlCreateInput("", 5, 5, 300, 25, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_NOHIDESEL))
    GUICtrlSetState($termGUI, $GUI_FOCUS)
    $hButton_1 = GUICtrlCreateButton("Search", 310, 5, 50, 25, 0)
    $hButton_2 = GUICtrlCreateButton("Clear", 365, 5, 50, 25, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab1 = GUICtrlCreateTab(5, 40, 590, 535)
    $TabSheet1 = GUICtrlCreateTabItem("Tab1")
    $GUIemb1 = GUICtrlCreateObj($oIE1, 15, 65, 570, 595)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $TabSheet2 = GUICtrlCreateTabItem("Tab2")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ;##########################################

    Do
    $msg = GUIGetMsg()
    Select
    Case $msg = $hButton_2
    GUICtrlSetData($termGUI, "")
    GUICtrlSetState($termGUI, $GUI_FOCUS)
    Case $msg = $hButton_1
    $sHTML = BinaryToString(InetRead("http://blog.fefe.de/"))
    ;~ $aMatch = StringRegExp($sHTML, ????????????????????????????????????????????)
    $sHTMLcut = _StringBetween($sHTML, '<h2><a href="/" style="text-decoration:none;color:black">Fefes Blog</a></h2>', 'Siehe auch: <a href="http://alternativlos.org/">Alternativlos</a><p><h3>Wed Jul 6 2011</h3>')

    [/autoit] [autoit][/autoit] [autoit]

    _IENavigate($oIE1, "about:blank", 0)
    _IEDocWriteHTML ($oIE1, $sHTMLcut)

    [/autoit] [autoit][/autoit] [autoit]

    EndSelect
    Until $msg = $GUI_EVENT_CLOSE;To be able to close the Window!
    Exit

    [/autoit]
  • _StringBetween liefert ein Array zurück ;)

    vielleicht so:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #include <GuiEdit.au3>
    #Include <File.au3>
    #Include <WinAPI.au3>
    #include <Constants.au3>
    #include <IE.au3>
    #include <Misc.au3>
    #include <Array.au3>
    #include <String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    #NoTrayIcon

    [/autoit] [autoit][/autoit] [autoit]

    dim $termGUI = ""
    dim $oIE1 = _IECreateEmbedded()

    [/autoit] [autoit][/autoit] [autoit]

    $hGUI_1 = GUICreate("Test-Anzeige", 600, 600, 0, 0)
    $termGUI = GUICtrlCreateInput("", 5, 5, 300, 25, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_NOHIDESEL))
    GUICtrlSetState($termGUI, $GUI_FOCUS)
    $hButton_1 = GUICtrlCreateButton("Search", 310, 5, 50, 25, 0)
    $hButton_2 = GUICtrlCreateButton("Clear", 365, 5, 50, 25, 0)

    [/autoit] [autoit][/autoit] [autoit]

    $Tab1 = GUICtrlCreateTab(5, 40, 590, 535)
    $TabSheet1 = GUICtrlCreateTabItem("Tab1")
    $GUIemb1 = GUICtrlCreateObj($oIE1, 15, 65, 570, 595)

    [/autoit] [autoit][/autoit] [autoit]

    ;~ $TabSheet2 = GUICtrlCreateTabItem("Tab2")

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ;##########################################

    [/autoit] [autoit][/autoit] [autoit]

    Do
    $msg = GUIGetMsg()
    Select
    Case $msg = $hButton_2
    GUICtrlSetData($termGUI, "")
    GUICtrlSetState($termGUI, $GUI_FOCUS)
    Case $msg = $hButton_1
    $sHTML = BinaryToString(InetRead("http://blog.fefe.de/"))
    ;~ $aMatch = StringRegExp($sHTML, ????????????????????????????????????????????)
    $sHTMLcut = _StringBetween($sHTML, '<b>', '</b>')

    [/autoit] [autoit][/autoit] [autoit]

    _IENavigate($oIE1, "about:blank", 0)
    _IEDocWriteHTML ($oIE1, $sHTMLcut[0])

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndSelect
    Until $msg = $GUI_EVENT_CLOSE;To be able to close the Window!
    Exit

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • Schnuffel:
    Danke, damit funktioniert es!

    Hatte jetzt auch noch eine Idee:

    [autoit]

    $sHTMLcut = _ArrayToString(_StringBetween($sHTML, '<ul>', '</ul>'))

    [/autoit][autoit][/autoit][autoit]

    _IENavigate($oIE1, "about:blank", 0)
    _IEDocWriteHTML ($oIE1, $sHTMLcut)

    [/autoit]

    Aber deine Lösung sieht eleganter aus ;)

    Aber hmmm die relativen Links funktionieren so nicht mehr .... (also bei meiner lösung auch nicht).

    Naja heute werde ich es wohl nicht mehr schaffen, aber müsste ich ja mit stringreplace leicht umzusetzen sein.
    hmmm aber bin gerade auf einer anderen seite und da gibt es relative links die mit / starten und welche die ohne starten...
    naja halt 2x stringreplace.

    Oder hat jemand ne bessere Idee als mein übermüdetes Gehirn?
    (zur Zeit zu viel Arbeit und nur Nachts ein bisschen Zeit um meine AutoIt Sachen mal voran zubringen...)