File size: 2,950 Bytes
b81c7ad
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import bs4
from PIL import Image
from selenium.webdriver.chrome.service import Service
from selenium import webdriver
import requests
import os
import time


PATH = r"C:\Users\anujg\Downloads\Programs\chromedriver_win32\chromedriver.exe"
service = Service(PATH)
options = webdriver.ChromeOptions()

options.add_argument('--no-sandbox')
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--window-size=1920,10800")
# Made window size so much that 50 images can fit in one window so that all images will be loaded

driver = webdriver.Chrome(service=service, options=options)
# driver.get(urlW)
# os.makedirs('ai-generated-images')

def dloadimg(url, name):
    # write image to file
    reponse = requests.get(url)
    if reponse.status_code==200:
        with open(os.path.join('resized',name+".jpg"), 'wb') as file:
            # # file = file.resize((400, 400))
            file.write(reponse.content)
            # try:
            #     image = Image.open(reponse.content)
            #     image = image.resize((400, 400))
            #     image.save(file)
            # except Exception as e:
            #     print(e)
            
def section_length(driver):
    fig_xpath = '//*[@id="main"]/div[3]/div/div[2]/section/figure'
    figures = driver.find_elements(by="xpath", value=fig_xpath)
    return len(figures)

def dload(urlW,name,pc):
        driver.get(urlW)
        num_img = section_length(driver)
        print(num_img)
        for i in range(1, num_img+1):
            ImageXPath = """//*[@id="main"]/div[3]/div/div[2]/section/figure[%s]/div/a/img"""%(i)
            # ImageElement = driver.find_element_by_xpath(ImageXPath)
            
            timeStarted = time.time()
            while True:
                try:
                    ImageElement = driver.find_element(by="xpath", value=ImageXPath)
                    ImageURL = ImageElement.get_attribute("src")
                    
                    if ImageURL == "https://freepik.cdnpk.net/img/1px.png":
                        currentTime = time.time()
                        if currentTime - timeStarted > 10:
                            print("Timeout! moving to next image")
                            break
                    elif ImageURL != "https://freepik.cdnpk.net/img/1px.png":
                        dloadimg(ImageURL, name+"_pg_no."+str(pc)+"img"+str(i))
                        print("Downloaded image no. %s of page no. %s." %(i,pc))
                        break
                    else:
                        break
                except:
                    print("Couldn't download an image %s, continuing downloading the next one"%(i))
                    break
        
pgcnt  = 1
while pgcnt<23:
    urlW = "https://www.freepik.com/photos/ai-generated/%s"%(pgcnt)
    dload(urlW,"AI_Img",pgcnt)
    pgcnt = pgcnt + 1
            



driver.close()