Benbjo Skrevet 18. mai 2009 Del Skrevet 18. mai 2009 Hei. Jeg har fått i oppgave å skrape en webside for informasjon. La oss si at denne hjemmesiden er slik at: Vi har et navn på et produkt, så årstallet produktet er utgitt og en link til hjemmesiden til produsenten. Problemet er at alle produsentene ikke nødvendigvis har en hjemmeside. Koden min ser slik ut: $search_for = "<SPAN CLASS\=\"product\"\>(.*)\<"; preg_match_all("/$search_for/U", $site, $matches); $array['product'] = $matches[1]; $search_for = "<DIV CLASS\=\"year\">(.*)\<"; preg_match_all("/$search_for/U", $site, $matches); $array['year'] = $matches[1]; $search_for = "<BR><A HREF\=\"(.*)\" TARGET\=\"_blank\"\>"; preg_match_all("/$search_for/U", $site, $matches); $array['link'] = $matches[1]; De to første preg matcene funker. Det som skjer er at dersom et produkt IKKE har en hjemmeside vil den neste hjemmesiden (altså til et annet produkt) legges inn sammen med produktet som ikke har en hjemmeside. F.eks så ser siden slik ut: product: Quaker year: 1978 link: www.quaker.com product: Nora year: 1502 product: Weetabix year: 1024 link: www.weetabix.com Det som skjer er at www.weetabix.com legges inn for produktet Nora, mens Weetabix får ingen hjemmesiden assosiert ved seg. Hvordan kan jeg løse dette problemet? Forslag? Lenke til kommentar
[kami] Skrevet 18. mai 2009 Del Skrevet 18. mai 2009 ligger all denne dataen i samme dokument? jeg ville nok skrevet om det regulære utrykket slik at den returnerer product, year, link i samme arrayen og ikke 3 forskjellige slik som du har gjort. på den måten beholder du assosiasjonen mellom dataen da måtte du jo funnet et utrykk som hadde hentet alt i en go da.. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå