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 Guru
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 Guru
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





Computerworld
Valutaspekulanter rydder grafikkort-lagrene hos ProShop igen og igen: "Det er helt vanvittigt for tiden"
Den nye kryptovaluta ethereum presser markedet for grafikkort voldsomt i disse måneder. For grafikkort anvendes til at udvinde valutaen. "Det er helt vanvittigt for tiden. Siden etherum-valutaen slog igennem i slutningen af 2016, har vi stort set ikke kunne holde grafikkort på lagrene, før de bliver solgt," lyder det fra ProShop.
CIO
Indsigt: Seks vigtige konklusioner om det store hacker-angreb mod Mærsk efter nyt regnskab
Det store hackerangreb mod A.P Møller - Mærsk 27. juni har fået alvorlige konsekvenser, viser selskabets nye regnskab. Her har du seks vigtige konklusioner i kølvandet på regnskabet.
Comon
Her er Nokias comeback-telefon: Masser af kræfter til fornuftig pris
Nokia er tilbage på markedet med en toptelefon til en skarp pris og - igen - med tysk kameralegende bag sig
Job & Karriere
Se listen: Disse it-folk bliver ansat på stedet - cheferne skriger efter helt bestemte it-kompetencer
Der er en markant mangel på it-folk med helt bestemte kompetencer samtidig med, at it-cheferne er i gang med at øge bemandingen i it-organisationerne. Se listen med de mest efterspurgte it-kompetencer netop nu.
White paper
Netværksprinteren er den oversete trussel mod din virksomheds it-sikkerhed - her er de gode råd
Danske virksomheder er i stigende grad under angreb fra it-kriminelle, og oplever flere og flere brud på it-sikkerheden. En undersøgelse blandt 300 it-ansvarlige gennemført af Spiceworks i samarbejde med HP viser, at 16 procent af de registrerede brud på it-sikkerheden involverede printere. I 2014 var tallet kun fire procent. Alligevel er det kun fire ud af ti it-ansvarlige, som har indført tilstrækkelige sikkerhedspolitikker for netværksprintere, hvilket udsætter virksomheden for betydelig risiko: Hackerangreb, blotlæggelse af følsom information eller bøder i forbindelse med EU’s persondataforordning.