Код на Python для извлечения изображений из поиска Google
Парсинг - это извлечение данных из HTML. Мы можем сделать это, используя BeautifulSoup.
В этой статье я расскажу, как извлечь изображения из поиска Google, используя BeautifulSoup на Python. Если вы понимаете это, вы сможете легко загрузить множество изображений из Google для использования в анализе данных или для личного использования.
В первую очередь установите ключевые слова поиска, для которых вы хотите получить изображение
search_words = ["Луффи", "Зоро", "Нами", "Санджи", "Чоппер"]
Укажите путь, куда вы хотите скачать изображения
img_dir = "./папка_с_изображениями/"
Повторите извлечение для каждого слова
for word in search_words:
dir_path = img_dir + word
if not os.path.exists(dir_path):
os.makedirs(dir_path)
Сделайте слово подходящим для URL
urlKeyword = parse.quote(word)
# Создание URL с ключевым словом
url = 'https://www.google.com/search?hl=jp&q=%27 + urlKeyword + '&btnG=Google+Search&tbs=0&safe=off&tbm=isch'
# Заголовки необходимы при отправке запроса
headers = {"User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0"}
# апрос с использованием URL и заголовков
request = req.Request(url=url, headers=headers) page = req.urlopen(request)
страница, которую вы получили, в кодировке utf-8
html = page.read().decode('utf-8')
** Используйте Beautiful Soup с "html.parser". Объект HTML доступен в Python.**
html = bs4.BeautifulSoup(html, "html.parser")
#.rg_meta.notranslate используется для извлечения данных без разрешения (не уверен)
elems = html.select('.rg_meta.notranslate')
counter = 0 error_counter = 0
for ele in elems: ele = ele.contents[0].replace('"','').split(',') eledict = dict()
#imageURL указан здесь. Для каждого элемента e в ele:
num = e.find(':'')
eledict[e[0:num]] = e[num+1:]
imageURL = eledict['ou']
#Получение URL: извлечение imageURL из file_path
#Попытка загрузки изображения, в случае ошибки выполнить программу except
try:
file_path = dir_path + "/" + str(counter) + ".jpg"
urlretrieve(imageURL, file_path)
counter += 1
except Exception as e:
error_counter += 1
if counter == 1:
print("Начало загрузки", word)
if counter == 200:
break
print("{} ошибок из ".format(counter, error_counter))
Давайте попробуем!
Сейчас загружается.
О, отлично!!
Я смог сохранить много изображений Луффи!
Вы можете попробовать другое слово для поиска, просто заменив переменные выше.