Avatar billede 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>
Avatar billede 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>");
Avatar billede acore Ekspert
09. august 2017 - 13:27 #2
...som en begyndelse - vil ikke skrive en masse, hvis jeg er helt på vildspor.
Avatar billede 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>
Avatar billede 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å
Avatar billede 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. Der sættes "nofollow" på alle links.

Loading billede 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