mirror of
https://github.com/hastagAB/Awesome-Python-Scripts.git
synced 2025-03-24 22:49:49 +00:00
Added image_downloader.py
This commit is contained in:
parent
8aa865cff9
commit
fb773c089f
107
web_image_downloader.py/image_downloader.py
Normal file
107
web_image_downloader.py/image_downloader.py
Normal file
@ -0,0 +1,107 @@
|
||||
#A simple python program to scrap and download jpg imaged form a web url.
|
||||
|
||||
from bs4 import *
|
||||
import requests
|
||||
import os
|
||||
|
||||
#Creating the folder
|
||||
def folder_create(images):
|
||||
try:
|
||||
folder_name = input("[+] Enter folder name: ")
|
||||
#creating folder
|
||||
os.mkdir(folder_name)
|
||||
except:
|
||||
print("A folder exists with this name!")
|
||||
folder_create()
|
||||
|
||||
#start downloading images
|
||||
download_images(images, folder_name)
|
||||
|
||||
#Download all images from that url
|
||||
def download_images(images, folder_name):
|
||||
count = 0
|
||||
print(f"[+] Total {len(images)} images found!")
|
||||
user_ch = input("[+] Do you want to continue (y/n)?")
|
||||
if user_ch == 'y':
|
||||
user_img_ch = int(input("How many images do you want to download (default 0 -> all): "))
|
||||
if user_img_ch == 0:
|
||||
if len(images) != 0:
|
||||
for i, image in enumerate(images):
|
||||
try:
|
||||
image_link = image["data-srcset"]
|
||||
except:
|
||||
try:
|
||||
image_link = image["data-src"]
|
||||
except:
|
||||
try:
|
||||
image_link = image["data-fallback-src"]
|
||||
except:
|
||||
try:
|
||||
image_link = image["src"]
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
r = requests.get(image_link).content
|
||||
try:
|
||||
r = str(r, 'utf-8')
|
||||
except UnicodeDecodeError:
|
||||
with open(f"{folder_name}/images{i+1}.jpg", "wb+") as f:
|
||||
f.write(r)
|
||||
|
||||
count += 1
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
if user_img_ch != 0 and user_img_ch <= len(images):
|
||||
if len(images) != 0:
|
||||
count_img = 0
|
||||
for i, image in enumerate(images):
|
||||
try:
|
||||
image_link = image["data-srcset"]
|
||||
except:
|
||||
try:
|
||||
image_link = image["data-src"]
|
||||
except:
|
||||
try:
|
||||
image_link = image["data-fallback-src"]
|
||||
except:
|
||||
try:
|
||||
image_link = image["src"]
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
r = requests.get(image_link).content
|
||||
try:
|
||||
r = str(r, 'utf-8')
|
||||
except UnicodeDecodeError:
|
||||
with open(f"{folder_name}/images{i+1}.jpg", "wb+") as f:
|
||||
f.write(r)
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
count_img += 1
|
||||
if(count_img == user_img_ch):
|
||||
break
|
||||
|
||||
if count == len(images):
|
||||
print("All Images Downloaded!")
|
||||
|
||||
# if all images not download
|
||||
else:
|
||||
print(f"Total {count} Images Downloaded Out of {len(images)}")
|
||||
else:
|
||||
print("[+] Thanks for visiting! Come back again.")
|
||||
|
||||
def main(url):
|
||||
r = requests.get(url)
|
||||
soup = BeautifulSoup(r.text, 'html.parser')
|
||||
images = soup.findAll('img')
|
||||
folder_create(images)
|
||||
|
||||
url = input("[+] Enter url: ")
|
||||
main(url)
|
||||
|
Loading…
x
Reference in New Issue
Block a user