Mundo em Python

Fazer o Download de um site em forma de pdf (usando tkinter)

from tkinter import *
import requests
from tqdm import tqdm
import os
from tkinter import messagebox as m_box
import re root = Tk()
root.title("Fazer o Download de um site em forma de pdf")
root.configure(bg="#42b6f5")
root.geometry("450x350")
root.resizable(0,0)
label = Label( text="Coloque o URL (pdf) : ",bg="#42b6f5",font=("arial","12"))
label.place(relx=0.1,rely=0.25)
url = StringVar()
colocar_url= Entry( textvariable=url,font=("arial","12"))
colocar_url.place(relx=0.5,rely=0.25,relwidth=0.45, relheight=0.09)
label2 = Label( text="Nome do Ficheiro: ",bg="#42b6f5",font=("arial","12"))
label2.place(relx=0.1,rely=0.45)
salvar_nome = StringVar()
colocar_aondesalvar= Entry( textvariable=salvar_nome,font=("arial","12"))
colocar_aondesalvar.place(relx=0.5,rely=0.45,relwidth=0.45, relheight=0.09) label3 = Label( text="Aonde Guarda: ",bg="#42b6f5",font=("arial","12"))
label3.place(relx=0.1,rely=0.65)
local = StringVar()
salvar= Entry( textvariable=local,font=("arial","12"))
salvar.place(relx=0.5,rely=0.65,relwidth=0.45, relheight=0.09)
#
def onClick():
sitio_salvar =local.get()
os.chdir(r"C:\Users\utilizador\Desktop")
file_url = url.get()
file_name_aft_click = salvar_nome.get()
if re.search(".pdf", file_url):
if (os.path.exists(file_name_aft_click + ".pdf") == False):
r = requests.get(file_url, stream= True)
total_size = int(r.headers['content-length'])
status = Label(text="Download do ficheiro...", font="Arial 11", relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)
with open(file_name_aft_click + ".pdf", 'wb') as f:
for data in tqdm(iterable=r.iter_content(chunk_size = 1024), total=total_size/1024, unit="KB"):
f.write(data)
m_box.showinfo("Download Completo","Download com Sucesso!")
status.forget()
else:
m_box.showerror("Erro","O nome do arquivo já existe no caminho de download !")
else:
m_box.showerror("Erro", "Apenas arquivos PDF são permitidos para download!")
btn1 = Button(text="Download do Arquivo",command=onClick)
btn1.place(relx=0.3,rely=0.8,relwidth=0.45, relheight=0.09)
root.mainloop()

Código baseado nesta página.

0