Hoe werkt het 'uitlezen' van een vergelijkingssite?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Stephan de vries

stephan de vries

15/02/2011 21:17:21
Quote Anchor link
Hallo allemaal,

Ik hoop dat ik op dit onderdeel goed zit betreffende mijn vraag.
Veel product-vergelijkingssites (een leuk voorbeeld is vliegtickets.nl) werken veelal middels het uitlezen van bijv. een xml of rss feed.
Echter, hoe zit dit met sites die een dergelijke feed niet aanbieden? Ik zou namelijk graag een webshop willen uitlezen waarbij door een formulier in te vullen gezocht word naar passende product(en). De prijs en beschikbaarheid van de producten veranderd per minuut dus het is belangrijk dat het realtime gebeurt.

Ik hoop dat jullie begrijpen wat ik bedoel en mij kunnen vertellen wat voor een techniek hiervoor gebruikt kan worden.

Alvast bedankt.
 
PHP hulp

PHP hulp

07/05/2024 08:44:21
 
- SanThe -

- SanThe -

15/02/2011 21:25:31
Quote Anchor link
En wat wil je met die gegevens doen. Klinkt een beetje illegaal namelijk.
 
Roy -

Roy -

15/02/2011 21:39:44
Quote Anchor link
cURL gebruik ik om websites uit te lezen, maar wanneer er een xml aangeboden wordt maakt dit het veel makkelijker.
 
Stephan de vries

stephan de vries

15/02/2011 21:58:40
Quote Anchor link
@-santhe-: illegaal? Dat is niet mijn bedoeling. Het is eigenlijk voor een vriend van mij. Die koopt heel veel voor zijn bedrijf op internet en moet nu al die websites gaan bezoeken en overal het zoekformulier invullen om de huidige prijs te achterhalen. Dit een keer of 10 om zo te kijken waar het op dat moment het goedkoopst is en te kopen. Het is dus puur het verzamelen van de data met tijdwinst op het oog. De gegevens worden immers vrij verstrekt op de website van de aanbieder


@roy d: uiteraard is dit veel makkelijker ja. Maar dit word niet aangeboden.
Ben je bekend met een site met tutorials o.i.d. ? Is het bovenstaande hiermee mogelijk?
 
Erik Rijk

Erik Rijk

15/02/2011 22:18:26
Quote Anchor link
Waarom gaat die vriend van jou zich niet verdiepen in affiliate marketing? Grote adverteerders zitten daar aangesloten en in het systeem zijn vaak gigantische productfeeds beschikbaar.,

Neem:

Daisycon
TradeTracker
m4n

etc..
 
Roy -

Roy -

15/02/2011 22:40:34
Quote Anchor link
Heb veel gedaan met uitlezen van website's van leveranciers om hier o.a. product informatie uit te lezen. Heb zo 123 geen website met een tut voor je.

Wordt wat spelen met de broncode om de juiste informatie te krijgen. Begin met de broncode uitlezen met file_get_contents (met curl ook mogelijk wanneer het wat meer afgeschermd is). Echo dit en ga met bijv. str_replace de rommel weghalen wat je niet wilt hebben. Of ga op regels werken, zoek naar bepaalde teksten in de broncode, enz..

Zorg wel dat je toestemming heb van..! Informatie is dan wel te lezen op het internet, maar betekend vaak niet dat dit gekopieerd, gewijzigd of opgeslagen mag worden!

2 voorbeeldjes om informatie te bemachtigen, kan helaas de website waar dit uitgelezen wordt er niet bij vertellen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
//Omschrijving
function product_omschrijving ($id){
    $regels = file("http://website.nl/info/".$id."/info.html");
    $i = 0;
    
    foreach($regels as $regel){
        
        //Zoeken naar laatste stukje html na de omschrijving
        if($start){
            if(eregi('<div align="right" class="normal small">', $regels[$i])){
                break;
            }
else {
                $tekst .= $regels[$i];
            }
        }

        
        //Zoeken naar de tr na de bestel button
        if($gevonden){
            if(eregi('</tr>', $regels[$i])){
                $start = 1;
            }
        }


        //Zoeken naar de bestel button
        if(eregi('<input type="text" class="orderbox" value="1"', $regels[$i])){
            $gevonden = 1;
        }


        $i++;
    }

    
    //Als er een omschrijving is wat rommel opruimen
    if($tekst){
        $tekst = str_replace(' class="normal"', "", $tekst);
        $tekst = str_replace(' class=normal', "", $tekst);
        $tekst = str_replace('<b>Productvergelijking</b>', "", $tekst);
        $tekst = str_replace('<a href="/compare?artnr='.$id.'" title="Productvergelijking">Product toevoegen aan vergelijking</a>', "", $tekst);
        $tekst = str_replace('/img/layout/globe.gif', "img/icons/world_link.png", $tekst);
        $tekst = str_replace('(link naar externe website, opent in nieuw venster)', "(link naar fabrikant)", $tekst);
        $tekst = str_replace('/ext.php?link=', "", $tekst);
        
        $tekst1 = '<table width="100%" cellpadding="2" cellspacing="1" border=0>'.$tekst;
    }

    
    return rawurldecode($tekst1);
}

?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
//Afbeelding downloaden en opslaan
function product_afbeelding ($id){
    $imghost    = "/home/website/domains/website.nl/public_html/img/product/";
    include_once("inc/simple_html_dom.php");
    $html = file_get_html("http://website.nl/info/".$id."/info.html");
    $a = 1;
    foreach($html->find('a') as $img){
        if(strstr($img->href, "jpg")){
            $url = 'http://www.website.nl'.$img->href;
            $img = $imghost.'1-'.$id.'-'.$a.'.jpg';
            $error_handling = file_put_contents($img, file_get_contents($url));
            if(!$error_handling){
                $fouten .= "<br><br>--<br>".mysql_error();
                $a++;
            }

            $string .= "1-".$id.'-'.$a.'.jpg,';
            $a++;
        }
    }

    return $string;
}

?>


Hoop dat je er wat aan hebt..
Gewijzigd op 15/02/2011 22:44:47 door Roy -
 
Stephan de vries

stephan de vries

15/02/2011 22:45:00
Quote Anchor link
@ Erik rijk: het betreft een aantal geselecteerde websites/webshops in binnen en buitenland die gescand dienen te worden.
Met 100% zekerheid kan ik zeggen dat deze niet bij een affiliate marketing bedrijf aangesloten zijn. Dus dat is geen optie. Als ik je reactie goed begrijp.
 
- Ariën  -
Beheerder

- Ariën -

15/02/2011 22:58:08
Quote Anchor link
@Roy, totdat de website opeens de opmaak ging veranderen, en jij geen data meer binnen kreeg.

Daarom is XML nou juist zo tof. Die biedt het in één fatsoenlijk formaat aan, die nooit aangepast wordt.
 
Roy -

Roy -

15/02/2011 23:00:06
Quote Anchor link
Helemaal juist, helaas bood de leverancier zoiets niet aan en was er geen mogelijkheid dat dit ontwikkeld werd. Zodoende akkoord om het uit te lezen gekregen en kwamen dit soort scripts tevoorschijn.
 

15/02/2011 23:02:42
Quote Anchor link
Let op, het script van Roy is niet goed. Het is verouderd én een slechte manier om data op te halen.


In principe mag je geen data uit een website halen. Alleen met toestemming mag dat, maar dan wordt er vaak ook wel iets aangeboden. Of dat hier ook geldt weet ik niet zeker. Waarschijnlijk wel.
 
- Mark -

- Mark -

15/02/2011 23:04:37
Quote Anchor link
@Roy eregi is trouwens verouderd.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.