πŸ”₯ Clone Any Website with Python | GUI Based Website Downloader (Free Code + Tutorial)

Demo :


Click Video πŸ‘‡πŸ‘‡πŸ‘‡


















πŸ’» Features:

  • Full GUI interface

  • Auto-folder selection

  • Progress handling

  • Works with any public website


Code :


import tkinter as tk

from tkinter import filedialog, messagebox

import os

import subprocess

import threading


def download_website():

    url = url_entry.get()

    folder_path = folder_path_var.get()


    if not url or not folder_path:

        messagebox.showerror("Error", "Please enter URL and folder path")

        return


    # Disable button and show loading

    clone_button.config(state=tk.DISABLED)

    status_label.config(text="Processing... Please wait.", fg="yellow")

    root.update()


    def run_download():

        try:

            os.chdir(folder_path)


            command = [

                "wget",

                "--mirror",

                "--convert-links",

                "--adjust-extension",

                "--page-requisites",

                "--no-parent",

                "--wait=1",

                "--user-agent=Mozilla/5.0",

                "--random-wait",

                "--execute", "robots=off",

                url

            ]


            subprocess.run(command, check=True)

            messagebox.showinfo("Success", "Website cloned successfully!")


        except Exception as e:

            messagebox.showerror("Error", f"Cloning failed:\n{e}")

        

        # Re-enable button and clear status

        clone_button.config(state=tk.NORMAL)

        status_label.config(text="")


    threading.Thread(target=run_download).start()


# GUI Code

root = tk.Tk()

root.title("Advanced Website Cloner Tool")

root.geometry("500x250")

root.configure(bg="#1e1e1e")


tk.Label(root, text="Enter Website URL:", bg="#1e1e1e", fg="white").pack(pady=5)

url_entry = tk.Entry(root, width=60)

url_entry.pack(pady=5)


folder_path_var = tk.StringVar()


def browse_folder():

    path = filedialog.askdirectory()

    folder_path_var.set(path)


tk.Label(root, text="Select Download Folder:", bg="#1e1e1e", fg="white").pack(pady=5)

folder_frame = tk.Frame(root, bg="#1e1e1e")

folder_frame.pack()


tk.Entry(folder_frame, textvariable=folder_path_var, width=40).pack(side=tk.LEFT, padx=5)

tk.Button(folder_frame, text="Browse", command=browse_folder).pack(side=tk.LEFT)


clone_button = tk.Button(root, text="Clone Website", command=download_website, bg="#007acc", fg="white", padx=10, pady=5)

clone_button.pack(pady=15)


# Status label for processing/loading

status_label = tk.Label(root, text="", bg="#1e1e1e", fg="yellow")

status_label.pack()


root.mainloop()

Comments

Popular posts from this blog

πŸš€ Simple Login & Registration System in Python Tkinter πŸ“±

πŸš€ Create a Python Screen Recorder with Audio (Complete Code)

Python IP Tracker App with GUI | Track IP Location Real-Time! (Working Project)