こんにちは。
Pythonを使ってGoogle画像検索にアクセスして画像を取得してみました。
適当に書いて動かしているのでガバガバです。
最初に
まあ適当にデスクトップに image
的なファイルを作成してターミナルを開きましょう。
cd desktop/image
して
vim image.py
とでもしてプロジェクトを作成してください。
エディタがvimなのは僕の趣味です。
言い忘れていましたが、これにはPython3と多少のモジュールが必要になるのでインストールしてください。
pip3 install モジュール名
すればインストールできるのでモジュールエラーがでたらやってみてください。
てことでコード書きます。
写経するなりコピペするなりしてください。
importrequestsimportrandomimportshutilimportbs4importsslssl._create_default_https_context=ssl._create_unverified_context
ここまででモジュール関連は終わりです。
あ、sslは証明が正しくないサイトをスクレイピングしたりするのに(それ以外でも)使えるので覚えておきましょう。
defimage(data):Res=requests.get("https://www.google.com/search?hl=jp&q="+data+"&btnG=Google+Search&tbs=0&safe=off&tbm=isch")Html=Res.textSoup=bs4.BeautifulSoup(Html,'lxml')links=Soup.find_all("img")link=random.choice(links).get("src")returnlinkdefdownload_img(url,file_name):r=requests.get(url,stream=True)ifr.status_code==200:withopen(file_name+".png",'wb')asf:r.raw.decode_content=Trueshutil.copyfileobj(r.raw,f)defcode():code=""foriinrange(10):code+=random.choice("aaaaaaaaaaaa")returncodewhileTrue:num=input("検索回数:")data=input("検索ワード:")for_inrange(int(num)):link=image(data)download_img(link,code())print("OK")
続いて image,download_img,codeという関数を宣言して中身を書いていきましょう。
まあ簡単に言えばスクレイピングして取得したデータをフォルダ内にaaaaaaという名前で保存しているだけです。
なので
code += random.choice("aaaaaaaaaaaa")
のaaaaaaaの名前はなんでもOKということですね。
そのあとのwhile Trueの場所ではアクセスが成功した先でワードを指定したりしているだけなのでそんなに難しくないです。
最後のPrint("OK")なんかも自分好みに変更しても楽しいかもしれませんね。
一応「全部コピペさせろよ!!!」って人のために全体を置いておきます。
importrequestsimportrandomimportshutilimportbs4importsslssl._create_default_https_context=ssl._create_unverified_contextdefimage(data):Res=requests.get("https://www.google.com/search?hl=jp&q="+data+"&btnG=Google+Search&tbs=0&safe=off&tbm=isch")Html=Res.textSoup=bs4.BeautifulSoup(Html,'lxml')links=Soup.find_all("img")link=random.choice(links).get("src")returnlinkdefdownload_img(url,file_name):r=requests.get(url,stream=True)ifr.status_code==200:withopen(file_name+".png",'wb')asf:r.raw.decode_content=Trueshutil.copyfileobj(r.raw,f)defcode():code=""foriinrange(10):code+=random.choice("aaaaaaaaaaaa")returncodewhileTrue:num=input("検索回数:")data=input("検索ワード:")for_inrange(int(num)):link=image(data)download_img(link,code())print("OK")
ここまでできたらターミナルを開いてpython3 image.py
をします。
モジュールエラーがでたら最初に戻ってインストールしなおしてください。
このレベルのPythonのエラーは大抵ググれば解決するのでがんばってください。
エラーもなく動作すれば
検索回数:
を指定すれば
検索ワード:
となって成功すればOKとでてきて最初に作成した iamge
ファイルの中にaaaaaaaa.png
的な名前でワードにそった画像が保存されているはずです。
保存されていればおしまいです。お疲れ様でした。