Ergebnis 1 bis 5 von 5

Thema: Website parsen mit HTML Tidy

  1. #1
    Freier Denker
    Registriert seit
    Jul 2013
    Beiträge
    439

    Website parsen mit HTML Tidy

    Hallo Leute,

    ich möchte für ein kleines Programm von mir eine Website (HTML) laden und anschließend einige Elemente von dieser Seite extrahieren. Dieses Problem klingt für mich so, als wenn es schon tausend Mal gelöst wurde. Doch ich google mal wieder nicht vernünftig, wie es mir scheint.

    Ich habe gefunden, dass HTML Tidy da eine ganz nützliche Lib zu ist.
    Aktuell schwanke ich noch zwischen einer C++ und einer Java Implementierung, hängt auch ein bisschen davon ab, ob ich später eine Grafische Oberfläche dazu bauen möchte, aber das ist ein anderes Thema.
    In C++ braucht man hierfür libtidy und in Java JTidy, welche effektiv das gleiche machen.

    Ich suche eigentlich nur ein KURZES Tutorial, wie ich nun da einen String (HTML Seite) reinwerfe und dann sowas wie ein Assoziatives Array oder ähnliches rausbekomme. Also den erzeugten DOM-Baum, wenn man es so nennen kann. Dann könnte ich mir deutlich sinniger die passenden Elemente raussuchen als wenn ich eigenständig irgendwelche Suchen und Ersetzen-Konstrukte baue.

    Hat da jemand ein Snippet zur Hand oder eine passende Quelle? Das Problem ist doch bestimmt auch schonmal jemand von euch angegangen?

    Grüße!


    P.S.: Alternativ würde ich auch Python oder Php nutzen. Aktuell stehe ich nur stark auf dem Schlauch, wie ich aus einer nicht unbedingt gut formatierten HTML-Datei meine entsprechenden Tags rauslesen kann.
    Geändert von Roin (14.11.18 um 23:12 Uhr)

  2. #2

    Re: Website parsen mit HTML Tidy

    Ich kenne Java und c++ zu wenig um auf die Sprachen selber eingehen zu können. Tidy's kenne ich im Web als "bereiniger" oder "Fehlersucher", deshalb denke ich du suchst einfach das falsche.
    Du brauchst einen HTML Parser, spontan habe ich für Java jsoup.org gefunden und für gut befunden das ermöglicht ein parsen über selectors.
    Code (JavaScript):
    1.  
    2. div.foo div.bar > a.baz
    3.  
    Für diesen Beitrag bedankt sich Roin

  3. #3
    Freier Denker

    (Threadstarter)


    Registriert seit
    Jul 2013
    Beiträge
    439

    Re: Website parsen mit HTML Tidy

    @KingJamez:
    Ungefähr sowas suche ich. Das klingt doch schon mal ganz gut. Schaue ich mir morgen dann mal genauer an!

  4. #4

    Re: Website parsen mit HTML Tidy

    Für Python (und auch PHP?) gibt es Beautiful Soup bzw. https://www.crummy.com/software/BeautifulSoup/.

    Was ich dir aber aktuell dennoch empfehlen würde: PhantomJS - das Projekt ist momentan in einem Freeze / "Suspendend until further notice" - aber ist in so fern einfach zu nutzen, dass du Javascript verarbeiten kannst, also auch so etwas wie die CSS-Selektoren (sollten) ebenfalls möglich sind.

    Ansonsten, man kann auch notfalls etwas HTML selbst parsen, wenn du die bereits schon herunterlädst und snapshottest. Man kann auch mit einem "Browser" capturen, also ähnlich wie mit PhantomJS, nur ohne PhantomJS - ich nutze zum Beispiel ein JS Skript (GreaseMonkey) um einen dynamischen "Feed" zu parsen. Die Daten (HTML Dom Node Collection) die ich dabei sammele über CSS Selektoren, downloade ich per Default ohne "Nachfrage" lokal auf das System. Und ein weiteres Skript verwendet die gewonnenen Daten als JSON (JSON.stringify(Dictionary) + JSON.parse(data)".

    Das könnte für dich vermutlich auch eine gute Lösung sein, Vorteil bei einem JS Skript - du kannst bereits Daten spezifisch abgreifen, die hinter/in einer Javascript Umgebung "versteckt" sind.
    Gruß theSplit
    @ I might be sober. The good things... the bad things... all I ever know is here! @ The past; yesterday, the present; here and now; the future; to be shaped. @
    +++ Pi-Thread +++ IT-Talents Code Competitions +++ NGB-Statistik Opt-Out/Anonymisierung +++ Stonerhead +++ Add-on Flag Cookies +++ Google Image Directlinks +++ dwrox.net

  5. #5
    Freier Denker

    (Threadstarter)


    Registriert seit
    Jul 2013
    Beiträge
    439

    Re: Website parsen mit HTML Tidy

    @theSplit: Beautiful Soup für Python ist ganz nett.
    Mit Selenium (Webdriver) rufe ich die Adresse auf, warte, bis da einiges an Javascript durchgelaufen ist und kann dann den Inhalt an BeautifulSoup übergeben und dort dann meine gewünschten Daten suchen.
    Das klappt relativ gut. Natürlich muss ich noch etwas stöbern, wo ich was immer finde aber der Tipp war ganz gut!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •