文字数[2740文字] この記事は3分26秒で読めます.
グーグル画像検索リンク抽出と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"; } } });
1135番目の投稿です/84 回表示されています.
著者名 @taoka_toshiaki
※この記事は著者が30代前半に書いたものです.
Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki
タグ
'User-Agent', 63.0.3239.132 Safari, AM, AppleWebKit, Asia, autoload.php', href, img src, like Gecko, new Client, pathinfo, PATHINFO_EXTENSION, PHP5.6, setHeader, Tokyo, use GoutteClient, Win64, Windows NT 10.0, ライブラリ, 巨人ぐーぐる,