파이썬으로 Google 이미지를 대량 스크레이프
12261 단어 파이썬google이미지scrapingBeautifulSoup
소스 코드 (Python 3에서 입증 됨) :
import bs4
import requests
import re
import urllib.request, urllib.error
import os
import argparse
import sys
import json
# How To
# (1) ソースコードを保存して命名する (e.g. scrape.py)
# (2) プログラムを起動する python scrape.py
# (3) オプション
# -s: Google Imagesにかける検索キーワード、複数可 (デフォルト "banana")
# -n: ダウンロードする画像の数量 (デフォルト 10枚)
# -o: 画像の保存先 (デフォルト <DEFAULT_SAVE_DIRECTORY>で指定する)
def get_soup(url,header):
return bs4.BeautifulSoup(urllib.request.urlopen(urllib.request.Request(url,headers=header)),'html.parser')
def main(args):
parser = argparse.ArgumentParser(description='Options for scraping Google images')
parser.add_argument('-s', '--search', default='banana', type=str, help='search term')
parser.add_argument('-n', '--num_images', default=10, type=int, help='num of images to scrape')
parser.add_argument('-o', '--directory', default='<DEFAULT_SAVE_DIRECTORY>', type=str, help='output directory')
args = parser.parse_args()
# 複数のキーワードを"+"で繋げる
query = args.search.split()
query = '+'.join(query)
max_images = args.num_images
# 画像をフォルダーでグループする
save_directory = args.directory + '/' + query
if not os.path.exists(save_directory):
os.makedirs(save_directory)
# スクレーピング
url="https://www.google.co.jp/search?q="+query+"&source=lnms&tbm=isch"
header={'User-Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36"}
soup = get_soup(url,header)
ActualImages=[]
for a in soup.find_all("div",{"class":"rg_meta"}):
link , Type =json.loads(a.text)["ou"] ,json.loads(a.text)["ity"]
ActualImages.append((link,Type))
for i , (img , Type) in enumerate( ActualImages[0:max_images]):
try:
Type = Type if len(Type) > 0 else 'jpg'
print("Downloading image {} ({}), type is {}".format(i, img, Type))
raw_img = urllib.request.urlopen(img).read()
f = open(os.path.join(save_directory , "img_"+str(i)+"."+Type), 'wb')
f.write(raw_img)
f.close()
except Exception as e:
print ("could not load : "+img)
print (e)
if __name__ == '__main__':
from sys import argv
try:
main(argv)
except KeyboardInterrupt:
pass
sys.exit()
입증 테스트
키워드를 "tanuki"로 이미지 25장 스크레이프:
스크래핑 결과:
제대로 "tanuki"의 폴더에 이미지가 다운로드되었습니다.
덧붙여서 여기가 같은 키워드를 Google 이미지 검색에 걸친 결과입니다 :
Reference
이 문제에 관하여(파이썬으로 Google 이미지를 대량 스크레이프), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Jixjia/items/881c03c50c6f07b0b6ab텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)