Pagina 1 van 1

[php] Google Image downloader

BerichtGeplaatst: 15 okt 2010 10:21
door Remi
Code: Selecteer alles
<?php
function downloadImagesGoogle
($criteria, $map){
    $search = str_replace(' ','+',$criteria);
    $images = array();
    $return = array();
    $dom = new DOMDocument();
    @$dom->loadHtmlFile('http://www.google.nl/images?q='.$search.'&biw=1220&bih=994');
    $xpath = new DOMXPath( $dom );
    $links = $xpath->query( '//img' );

    foreach ( $links as $link )
    {
        $expl= explode(':', $link->getAttribute( 'src' ));
        if(isset($expl[3])){
            $images[] = $expl[3].':'.$expl[4] ;
        }
    }
    $dom = NULL ;
    if(!file_exists($map)){
        mkdir($map);
    }
    
    if
(count($images) > 0){
    for($i = 0; $i < count($images); $i++){
        if(isset($images[$i])){
        $explode = explode('.',$images[$i]);
        $extension = $explode[(count($explode)-1)];
        if($extension == 'jpg' || $extension == 'jpeg'){
            if($img = file_get_contents($images[$i])){
                $return[$i] = 'images/'.$map.'/'.$i.'.'.$extension ;
                file_put_contents($return[$i],$img);
                $done++ ;
            }
        }
        }
    }
    }
    
    if
(count($return) > 0){
        return $return ;
    }else{
        return false ;
    }
}
?>

Re: [php] Google Image downloader

BerichtGeplaatst: 20 okt 2010 15:00
door Derk
Draai dit niet te vaak (zet dit niet direct achter een veelbezochte pagina). Google vind dit niet leuk. Ik heb een keer een uur (oid) een google-ban gehad omdat ik zoiets deed.

Re: [php] Google Image downloader

BerichtGeplaatst: 20 okt 2010 17:39
door Remi
Wooow, een google ban! Dan had je het wel heel bont gemaakt :P
Voor prive gebruik krijg je overigens geen ban. Ik draai dit script hier gewoon thuis. Ongeveer om de 15 seconden gaat er een aanvraag naar de google server.
Bovendien gebruikt dit script alleen google om de afbeeldingen te zoeken. De afbeelding zelf worden van de websites afgehaald.

Re: [php] Google Image downloader

BerichtGeplaatst: 21 okt 2010 21:59
door Derk
ow, ik had het gewoon in een while(true) staan :P en niet met plaatjes maar gewoon zoeken, om alle 50 pagina's op te halen.
Toevallig ben ik er net weer mee bezig geweest, altavista heeft niet zoiets én altavista heeft 100 x 10 hits ipv 50 x 10 zoals google :)

Re: [php] Google Image downloader

BerichtGeplaatst: 22 okt 2010 17:47
door Moonstrike
Maar wat kun je dan met dit script ?

Re: [php] Google Image downloader

BerichtGeplaatst: 22 okt 2010 20:13
door Remi
Het zoekt plaatjes op google en download ze dan in een map.
function downloadImagesGoogle($criteria, $map){

De criteria is de zoek criteria, en map is de map waarin de foto moeten komen.
Al wil jij een afbeelding van een appel hebben en die wil je opslaan in de map appels in de map images dan doe je:
downloadImagesGoogle('appel', 'images/appels');

Hij returned de locatie van de gedownloade foto's in een array. Al kon die geen foto's vinden returned die false.