Noob Novice
09. august 2017 - 12:12 Der er 4 kommentarer

hvordan skal jeg explode det her

Hvordan skal jeg explode det her ?
Som i kan se i html så har jeg markeret det jeg skal brug.
Er godt nok ved at få grå hår af det, eller flere ;D

class="glob-search_link" href="/Medicin/Praeparater/DET HER SKAL JEG BRUGE"><div class="glob-hoverbg-gray glob-searchresult-item">
      <div class="glob-searchline" title="Panodil®">
        <div class="glob-search-desc">DET HER SKAL JEG BRUGE<sup>®</sup></div>
        <div class="glob-arrow-with-mediatype">
          <div class="glob-searchline-arrow"> </div>
        </div>
      </div>
      <div class="glob-floatNone"></div>
    </div></a><a class="glob-search_link" href="/Medicin/Praeparater/DET HER SKAL JEG BRUGE"><div class="glob-hoverbg-gray glob-searchresult-item">
      <div class="glob-searchline" title="Panodil Brus">
        <div class="glob-search-desc">DET HER SKAL JEG BRUGE</div>
        <div class="glob-arrow-with-mediatype">
          <div class="glob-searchline-arrow"> </div>
        </div>
      </div>
      <div class="glob-floatNone"></div>
    </div></a><a class="glob-search_link" href="/Medicin/Praeparater/DET HER SKAL JEG BRUGE"><div class="glob-hoverbg-gray glob-searchresult-item">
      <div class="glob-searchline" title="Panodil Hot">
        <div class="glob-search-desc">DET HER SKAL JEG BRUGE</div>
        <div class="glob-arrow-with-mediatype">
          <div class="glob-searchline-arrow"> </div>
        </div>
      </div>
      <div class="glob-floatNone"></div>
    </div></a><a class="glob-search_link" href="/Medicin/Praeparater/DET HER SKAL JEG BRUGE"><div class="glob-hoverbg-gray glob-searchresult-item">
      <div class="glob-searchline" title="Panodil Junior">
        <div class="glob-search-desc">DET HER SKAL JEG BRUGE</div>
        <div class="glob-arrow-with-mediatype">
          <div class="glob-searchline-arrow"> </div>
        </div>
      </div>
      <div class="glob-floatNone"></div>
    </div></a><a class="glob-search_link" href="/Medicin/Praeparater/DET HER SKAL JEG BRUGE"><div class="glob-hoverbg-gray glob-searchresult-item">
      <div class="glob-searchline" title="Panodil® Zapp">
        <div class="glob-search-desc">DET HER SKAL JEG BRUGE<sup>®</sup> Zapp</div>
        <div class="glob-arrow-with-mediatype">
          <div class="glob-searchline-arrow"> </div>
        </div>
      </div>
      <div class="glob-floatNone"></div>
    </div></a><div class="glob-searchresult-item"></div>
</div>
<div class="searchResBlock glob-displayNone" id="searchResBlock_30">
  <div class="SoegeresText">
          Søgeresultater,
        Lægemiddelgrupper
      :
        </div><a class="glob-search_linkKolort<br>
acore Ekspert
09. august 2017 - 13:25 #1
I min optik er simplehtmldom - se http://simplehtmldom.sourceforge.net/ - aldeles uovertruffen til at parse html sider.

Koden bliver noget med:

$html = file_get_html("http://www.xxx.com/");

foreach($html->find('a[class=glob-search_link]') as $item)
  echo($item->href."<br>");
acore Ekspert
09. august 2017 - 13:27 #2
...som en begyndelse - vil ikke skrive en masse, hvis jeg er helt på vildspor.
Zochko Juniormester
11. august 2017 - 20:34 #3
Javascript kunne også være en mulighed.
Jeg har forsøgt at skrive lidt kommentarer til, du må sige til hvis der er noget som skal uddybes :)

<script type="text/javascript">
   
    var savedGlobSearchLinkPart = [];
    var savedGlobSearchDescValue = [];
   
    // Henter alle elementer som har klassen glob-search_link og gemmer dem i et array "links".
    var links = document.getElementsByClassName("glob-search_link");

    // Henter alle elementer som har klassen glob-search-desc og gemmer dem i et array "divElements".
    var divElements = document.getElementsByClassName("glob-search-desc");
   
    // Løber alle de fundne links igennem.
    for(var i = 0; i < links.length; i++) { 
       
        // Her splitter vi url hver gang "/" mødes i url, og gemmer i et midlertidigt array "splittedUrl".
        var splittetUrl = links[i].href.split("/");
        // Nu tager vi det sidste element i det midlertidige array og gemmer indholdet i en variable "neededPartOfUrl".
        var neededPartOfUrl = splittetUrl[splittetUrl.length -1];
       
        // Her gemmer vi så den variabel som indeholder den del af url som du skal bruge i et array "savedGlobSearchLinkPart" - Bemærk jeg har brugt navnet på klassen vi søger efter i navnet på array.
        savedGlobSearchLinkPart[i] = neededPartOfUrl;
       
    } 
   
    // Løber igennem alle elementerne med klassen glob-search-desc.
    for (var i = 0; i < divElements.length; i++) {
       
        // Udtrækker teksten fra elementet
        var textValue = divElements[i].innerText;
       
        // fjerner det som der ikke skal bruges
        var stripetIcon = textValue.replace("®", "");
        var stripetText = stripetIcon.replace("Zapp", "");
       
        // Gemmer værdierne.
        savedGlobSearchDescValue[i] = stripetText;
    }
   
    /*
    window.alert(savedGlobSearchLinkPart);
    window.alert(savedGlobSearchDescValue);
    */
   
    console.log(savedGlobSearchLinkPart);
    console.log(savedGlobSearchDescValue);
</script>
Noob Novice
13. august 2017 - 11:26 #4
hej Zochko.
Super mange tak for dit bu men må sige jeg forstå slet ikke javascript desværre men skal til at lære det i løbet af vinteren da det faktisk er en app jeg vi l prøve at lave.

Jeg kan ikke få noget ud med det script du har lavet og vil også lige sige at det er ikke det samme html resultat der vil komme hver gang da det er fra et søgeresultat.
Jeg har hele siden i en html dom hvor jeg skriver til filen test.txt og der er der jeg henter den html jeg skal bruge.
håber du / i forstå
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Til Computerworlds Premium-medlemmer: Download eksklusiv single og lydbog om det store Mærsk-angreb - fortalt time for time
Som Premium-læser skal du forkæles. Derfor har vi på Computerworld gjort lidt ekstra ud af det og lavet en sommerferiegave til dig. Download den her.
Computerworld
Margrethe Vestager på vej med rekordbøde til Google for misbrug af Android
Margrethe Vestager lægger op til endnu et slagsmål med Google. Denne gang kan udfaldet blive den hidtil største bøde til den internationale tech-gigant.
CIO
Henrik Jeberg om at arbejde i Silicon Valley: "Er du dygtig nok får du tilbud der får en til at falde ned af stolen."
Henrik Jeberg bor i San Francisco og er direktør i Hampleton Partners, der rådgiver om opkøb med særligt fokus på teknologi. Hør ham fortælle om forskellen på Danmark og Silicon Valley - og om nogle af de vilde forhold der hersker i verdens ubestridte tech-hovedstad.
Job & Karriere
KMD opsagde tryghedsaftaler med medarbejderne få måneder før 300 medarbejdere blev outsourcet til IBM
KMD har i løbet af foråret opsagt to såkaldte tryghedsaftaler med en del af selskabets medarbejdere. Når aftalerne stopper ved udgangen af 2018, er de pågældende medarbejdere ikke længere berettiget til særlig godtgørelse. Det kan få konsekvenser, hvis IBM som forventet skærer i antallet af de 300 KMD-medarbejdere, som selskabet overtager.