26 berichten aan het bekijken - 1 tot 26 (van in totaal 26)
  • Q:
    Bijdrager
    Boike12

    Parsing Html

    Hallo!

    Ik heb een klein vraagje. Ik heb al gehoord dat je met xcode JSON kan parsen, dit is me ook gelukt. Maar nu wil ik graag een html website parsen.. Die website vernieuwd elke dag, het is dus niet mogelijk om de html file te downloaden en die in xcode te slepen.
    Is dit wel mogelijk?

    Bijdrager
    Jakko Westerbeke

    En met “parsen” bedoel je hier … wat precies? Is de vraag of er een standaardclass of zo is die je aan kunt roepen om uit een stuk HTML die delen te halen die voor jou belangrijk zijn, of zoek je iets dat je kunt gebruiken om HTML weer te geven als in een webbrowser, of nog iets anders?

    Bijdrager
    Boike12

    Ik wil een stukje van een HTML website halen. Het is geen bestand maar echt een website. Het stukje ziet er zo uit.

    1C2
    ne
    Rou
    4e uur 007 [Bwe]

    Of dat boven of onder moet weet ik niet, ik ben niet zo heel erg bekend met html. Maarja, mijn vraag is dus of dit stukje in een TableView kan. Zodat het ook elke dag veranderd (de tekst in die code veranderd elke dag op de site) en de ene dag zijn het 4 stukjes en de andere dag misschien wel 20…

    Bijdrager
    Boike12

    Sorry dit is een stuk van de code

     
     
     
    1D2
    ne
    Rou
    3e uur T211 [Vrm]
     
    Inactief
    Anoniem

    Misschien heb je hier wat aan: http://stackoverflow.com/questions/8866376/using-an-nsxmlparser-to-parse-html

    Gaat het trouwens on OSX of iOS?

    In het laatste geval: http://www.raywenderlich.com/14172/how-to-parse-html-on-ios

    Google is je vriend.:wink:

    Bijdrager
    Boike12

    Dankjewel, ik ga het doorlezen

    Bijdrager
    Jakko Westerbeke
    Boike12 op 18 januari 2013

    Het is geen bestand maar echt een website.

    Een website bestaat uit bestanden, waarvan het hoofdbestand meestal HTML is (al dan niet gegenereerd met b.v. PHP).

    Boike12 op 18 januari 2013

    Maarja, mijn vraag is dus of dit stukje in een TableView kan.

    Je wilt dus een bepaald stukje uit een lap HTML halen? Dan moet je je denk ik verdiepen in óf een HTML-parser (geen idee of er eentje voor Objective C is), óf zelf een stukje code schrijven dat die waarden uit de pagina haalt. Aangezien het zo te zien om maar een paar waarden gaat, is dat laatste waarschijnlijk ook wel een optie; het zou een kwestie zijn van kijken hoe de HTML rondom de gewenste waarden in elkaar zit en dan alles behalve die waarden wegknippen.

    Bijdrager
    Boike12

    Als ik er woorden uit haal dan komt het de volgende dag toch niet meer overheen.. Of zit ik mis?

    Bijdrager
    Boike12

    Oja het gaat om ios

    Bijdrager
    Jakko Westerbeke

    Niet als je die specifieke waarden eruit probeert te halen, nee. Daarom kijk je naar de opmaak rondom de waarden die je nodig hebt: grote kans dat die altijd hetzelfde is. Dan kun je daarnaar zoeken en aan de hand daarvan de waarden uit de HTML halen.

    Goed, hier stond dus eerst een voorbeeld met wat HTML en uitleg, maar omdat de forumsoftware sinds het laatste grote onderhoud alles binnen code-tags tegenwoordig nog meer verprutst dan vroeger, werkte dat dus helemaal van geen kanten: alle HTML verdween, en proberen dat te voorkomen door < e.d. te gebruiken helpt ook niet, want dan zie je díe escapes dus weer wel zoals ze ingetypt zijn … handig!

    Bijdrager
    Boike12

    Ik heb alle stappen gevolgd, maar nu loop ik vast als ik hem voor de eerste keer wil gaan runnen..

    /uploads/community/97e6ce33454c30a2cd54c8e8fd53dfd3c95e59f4_0.png

    How to Parse HTML on iOS

    Bijdrager
    Boike12

    Inactief
    Anoniem

    Dat is wel heel erg klein geschreven:mrgreen:

    Wat gaat er precies fout?

    Bijdrager
    Boike12

    Ik heb de fout al gevonden, ik had een singleview en het moest een masterdetail zijn -__-

    “Next, add the following method above initWithNibName:bundle:, which will load the list of tutorials from raywenderlich.com:”

    Waar moet je dit stuk nu neerzetten?

    “Make the tableView:cellForRowAtIndexPath: look like this:”
    Zelfde verhaal..

    Inactief
    Anoniem

    Als ik het goed lees moet dat allemaal in MasterViewController.m.

    TIP: Ga niet klakkeloos alle code van dat tutorial in je project knippen en plakken. Daar leer je zo goed als niets van. Je leert veel meer van het zelf intypen, dan krijg je een veel beter idee van waar je mee bezig bent, zeker wanneer je per ongeluk een typo maakt.

    Bijdrager
    Boike12

    Ja dat probeer ik ook, maar ik weet niet precies waar…

    Inactief
    Anoniem

    1. Open de file MasterViewController.m
    2. Zoek de method initWithNibName:bundle:
    3. Voeg de code daaronder toe

    Bijdrager
    Boike12

    Het is gelukt, nu ga ik proberen mijn eigen website te parsen.

    Bijdrager
    Boike12

    ik heb dus dit stukje te parsen:

     
     
    1C2
    ne
    Rou
    4e uur 007 [Bwe]
     
     

    In de tutorial staat dat je iets moet maken om dat stukje te kunnen vinden.
    @”//div[@class=’entry’]/ul/li/a”
    mijn class is “body” dus ik had hem zo gemaakt.
    @”//div[@class=’body’]/tr/td/width”

    Hoe zou ik dat stukje moeten maken?

    Bijdrager
    Boike12

     
     
     
     

    Inactief
    Anoniem
    Boike12 op 20 januari 2013

    In de tutorial staat dat je iets moet maken om dat stukje te kunnen vinden.
    @”//div[@class=’entry’]/ul/li/a”
    mijn class is “body” dus ik had hem zo gemaakt.
    @”//div[@class=’body’]/tr/td/width”

    Hoe zou ik dat stukje moeten maken?

    Wat begrijp je niet?

    Kun je voortaan iets duidelijker zijn met je vragen? Ik wil je best op weg helpen, maar vragen als ‘hoe doe je dat’, of ‘het gaat fout’, zijn niet echt een goede manier om de juiste antwoorden te krijgen.:smile:

    Bijdrager
    Boike12

    Je moet een stukje maken om het gene wat je wilt parsen te kunnen vinden. Als eerste vul je de website in, en als 2e zoek je het stukje op om te parsen.

    @”//div[@class=’entry’]/ul/li/a”
    Dit is het stukje dat hun gebruiken om de lijst met tutorials te vinden. Hun class is Entry, daarna gaan ze naar de regel met UL ervoor, daaronder krijg je LI en als laatste A waar hun tekst in staat.

    Mijn stukje ziet er zo uit. (ik kan de afbeelding niet groter maken, je zal even op de webpagina moeten inzoomen)

    Ik hoop dat het zo iets duidelijker is:-D

    Inactief
    Anoniem

    Moet het niet @”//div[@class=’body’]/table/tbody/tr/td/width” zijn ?

    Trouwens, een body element kan nooit in het midden van je html code staan. Probeer de html code eens te veranderen in oid. En als je toch bezig bent, haal alle style code uit de html en zet die in een aparte css file.

    Bijdrager
    Boike12

    Het is niet mijn website…

    Bijdrager
    Boike12

    Dankjewel dit werkt! Alleen komen er tussen de stukken heel veel gaten.. Zal dit ook op een manier op te lossen zijn? En dat je bepaalde stukken die toevallig ook met table/tbody/tr/td beginnen eruit kan filteren?

    Inactief
    Anoniem
    Boike12 op 20 januari 2013

    Dankjewel dit werkt! Alleen komen er tussen de stukken heel veel gaten.. Zal dit ook op een manier op te lossen zijn? En dat je bepaalde stukken die toevallig ook met table/tbody/tr/td beginnen eruit kan filteren?

    Als je de resultaten wilt filteren, kun je dat denk ik het beste in stap //7 in de loop doen na

    NSArray *tutorialsNodes = [tutorialsParser searchWithXPathQuery:tutorialsXpathQueryString];

    Ik weet zeker dat je dat zelf kunt uitvogelen! Misschien kun je zo ook die ‘gaten’ er uit halen.

26 berichten aan het bekijken - 1 tot 26 (van in totaal 26)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.