В този труден момент всеки от нас трябва да споделя знания и да си сътрудничи. Опитвах се да направя набор от данни за хора, носещи маска и без маска, събрах малко данни. Но аз споделям как можете да изтриете изображения в Google и да изпълните тази задача. Ето моето видео, обясняващо концепцията.
Първо трябва да имаме Selenium и уебдрайвер, напр. уеб драйвер за chromium.
Няма да обяснявам всичко отново, защото вече обясних много неща във видеото.
Ето кода:
import os import time import urllib.request from selenium import webdriver from selenium.webdriver.common.keys import Keys
Сега трябва да инстанцираме уеб драйвера и да отворим Google
driver = webdriver.Chrome("C:\\Users\\Sourabh\\chromedriver.exe") driver.get('https://www.google.com/') #opens up google search = driver.find_element_by_name('q') # the name of the searchbox search.send_keys('people wearing mask',Keys.ENTER)
Сега трябва да отидем в секцията с изображения
elem = driver.find_element_by_link_text('Images') elem.get_attribute('href') elem.click()
Трябва да превъртим страницата, за да събираме все повече и повече стойности на src от ‹img src›
value = 0 for i in range(50): #Scrolls the page 50 times driver.execute_script(‘scrollBy(“+ str(value) +”,+100);’) value += 100 time.sleep(4)
Сега трябва да намерим class/id на img тага, за да получим атрибута src от там. Към момента има три класа в img тага на google images.Имайте предвид, че google го променя периодично, така че може да не работа след седмици.
elements = driver.find_elements_by_xpath(‘//img[contains(@class,”rg_i”) and contains(@class, “Q4LuWd”) and contains(@class, “tx8vtf”)]’) try: os.mkdir('peoplewithmask') except FileExistsError: pass
Накрая трябва да извлечем и изтеглим връзките
count = 0 for i in elements: src = i.get_attribute('src') try: if src != None: src = str(src) count+=1 urllib.request.urlretrieve(src, os.path.join('withMask','image'+str(count)+'.jpg')) if count%10 == 0: print("downloaded",count,"images") else: raise TypeError except TypeError: pass
Готово, това беше всичко за днес. Чувствайте се свободни да се свържете, ако имате нужда от помощ.