記録

グーグル画像検索リンク抽出とYahoo画像検索リンク抽出!!


昨日Qiitaで公開したコードです。プラスYahooも作ってみたよ。

php5.6
ライブラリ Goutte
説明:コマンドラインから巨人ぐーぐるさんの画像検索に検索内容を投げHTMLを抽出後、
HTML解析を行い画像リンクだけを抽出するものです。コメントを外しダウンロードディレクトリを
作成すればダウンロードが可能ですが、あくまでもローカルで動かす事を前提としています。
尚、機械学習の為に画像収集するには少し数が少ないですね・・・(水増し)orz。
リンクはこちら

 
ライブラリはググってインストールして下さい。
おそらくレンタルサーバーなら大体、標準がPHP5.6だと思います。
PHP7とかで動いている場合もあるだろうけれど・・・。
ライブラリはバージョン2系を自分はインストールして作成しました。

<?php
date_default_timezone_set('Asia/Tokyo');
include '/composer/vendor/autoload.php';
use Goutte\Client;
$p=count($argv)>=2?$argv[1]:"cat";
$client = new Client();
$client->setHeader('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');
$crawler = $client->request('GET',"https://www.google.co.jp/search?hl=fr&tbm=isch&source=hp&biw=1920&bih=959&q={$p}&oq={$p}&gws_rd=cr&dcr=0");//'https://www.google.com/search?hl=fr&tbm=isch&source=hp&biw=1920&bih=959&q='.$p.'&oq='.$p);
$img = $crawler->filter('div.rg_bx.rg_di.rg_el.ivg-i')->each(function($element){
    if(preg_match("/\"ou\":\".*\"\,\"ow\"/",$element->text(),$link)){
        $url = str_replace(array('"ou":"','","ow"'), "",$link[0]);
        $ext = pathinfo($url, PATHINFO_EXTENSION);
        $name = pathinfo($url,PATHINFO_FILENAME);
        echo $url."\n";
        if(preg_match('/((jpg)|(jpge)|(png)).*/',$ext)){
            //$data = file_get_contents($url);
            //file_put_contents('./download/dl_'.$name.".".$ext,$data);
            //echo '<img src="'.'./download/dl_'.$name.".".$ext."\">\n";
        }
    }
});

 
こちらがYahoo版ですが、あまり抽出出来てません。

<?php
date_default_timezone_set('Asia/Tokyo');
include '/composer/vendor/autoload.php';
use Goutte\Client;
$p=count($argv)>=2?$argv[1]:"cat";
$client = new Client();
//$client->setHeader('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');
$crawler = $client->request('GET','https://search.yahoo.co.jp/image/search?p='.$p.'&rkf=1&oq=inu&ei=UTF-8&imc=&ctype=&dim=large');
$img = $crawler->filter('.gridmodule .SeR .tb a')->each(function($element){
    if(!preg_match("/.*search\.yahoo\.co\.jp/",$element->attr('href'),$link)){
        $url = $element->attr('href');
        $ext = pathinfo($url, PATHINFO_EXTENSION);
        $name = pathinfo($url,PATHINFO_FILENAME);
        echo $url."\n";
        if(preg_match('/((jpg)|(jpge)|(png))$/',$ext)){
            //$data = file_get_contents($url);
            //file_put_contents('./download/dl_'.$name.".".$ext,$data);
            //echo '<img src="'.'./download/dl_'.$name.".".$ext."\">\n";
        }
    }
});

活動支援よろしくお願いします

26-38::12年:IT業界を転々としてきた。前のページ

アマゾンウェブサービスってどうなの?次のページ

関連記事

  1. 記録

    映画、劇場版S-最後の警官-を観てきましたので感想なんかを。 #映画レビュー

    映画、劇場版S(エス)-最後の警官-を観てきましたので感想なんかを残…

  2. 記録

    世間の基準に惑わされないBY 茂木健一郎

    世間の基準に惑わされない事が大事だと茂木健一郎 氏は言っている。有給…

  3. 記録

    何がいいかなんて終わってみないとわかりません。著:ミゾイキクコを読んで。

    何がいいかなんて終わってみないとわかりません。著:ミゾイキク…

  4. 記録

    プログラマーじゃないのにコードが書ける人がゾクゾク(´Д`)?

    プログラマーじゃないのにコードが書ける人が今よりかゾクゾクでてくる時…

  5. 記録

    PHP8になって厳格になった、後任ごめんなさい。書いてないです。static…

    今日は9.11同時多発テロが起きた日です、ご冥福をお祈りします。もう…

  6. 記録

    Start playing online games.

    Start playing online games.A sequ…

PAGE TOP