Advertisement
MizunoBrasil

Raspagem Globo (Tkinter)

Jun 17th, 2023
909
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.44 KB | None | 0 0
  1. import requests
  2. from bs4 import BeautifulSoup
  3. import tkinter as tk
  4. import datetime
  5.  
  6. def extrair_conteudo():
  7.     url = entry_url.get()
  8.  
  9.     # Realiza a requisição GET para obter o conteúdo da página
  10.     response = requests.get(url)
  11.     html_content = response.text
  12.  
  13.     # Cria um objeto BeautifulSoup para analisar o HTML
  14.     soup = BeautifulSoup(html_content, 'html.parser')
  15.  
  16.     # Extrai o conteúdo das divs com as classes especificadas
  17.     h1_content = soup.find('h1', class_='content-head__title').text.strip()
  18.     h2_content = soup.find('h2', class_='content-head__subtitle').text.strip()
  19.     article_content = soup.find('article').text.strip()
  20.  
  21.     # Exibe o conteúdo extraído na textarea
  22.     textarea_output.delete('1.0', tk.END)  # Limpa o conteúdo anterior
  23.     textarea_output.insert(tk.END, f'Título: {h1_content}\n')
  24.     textarea_output.insert(tk.END, f'Subtítulo: {h2_content}\n')
  25.     textarea_output.insert(tk.END, f'Conteúdo do artigo: {article_content}\n')
  26.  
  27.     # Obtém a data e hora atual da coleta
  28.     now = datetime.datetime.now()
  29.     data_hora_coleta = now.strftime('%d/%m/%Y às %H:%M:%S')
  30.     textarea_output.insert(tk.END, f'Data da coleta: {data_hora_coleta}\n')
  31.  
  32. # Cria a janela principal
  33. window = tk.Tk()
  34. window.title('Extrator de Notícias Globo.com')
  35. window.geometry('1280x800')  # Define o tamanho da janela
  36.  
  37. # Cria uma etiqueta e um campo de texto para a URL
  38. label_url = tk.Label(window, text='URL:')
  39. label_url.pack()
  40.  
  41. entry_url = tk.Entry(window, width=150)
  42. entry_url.pack()
  43.  
  44. # Cria um menu de contexto para a caixa de texto URL
  45. def paste_text(event):
  46.     entry_url.event_generate('<<Paste>>')
  47.  
  48. menu_context = tk.Menu(window, tearoff=0)
  49. menu_context.add_command(label='Colar', command=lambda: paste_text(None))
  50. entry_url.bind('<Button-3>', lambda e: menu_context.tk_popup(e.x_root, e.y_root))
  51. entry_url.bind('<Control-v>', lambda e: paste_text(None))
  52.  
  53. # Cria um botão para extrair o conteúdo
  54. button_extract = tk.Button(window, text='Extrair Conteúdo', command=extrair_conteudo)
  55. button_extract.pack()
  56.  
  57. # Cria uma textarea grande com scroll vertical para exibir o resultado
  58. textarea_output = tk.Text(window, height=30, width=150)
  59. textarea_output.pack()
  60.  
  61. scrollbar = tk.Scrollbar(window)
  62. scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
  63.  
  64. textarea_output.config(yscrollcommand=scrollbar.set)
  65. scrollbar.config(command=textarea_output.yview)
  66.  
  67. # Inicia o loop de eventos da janela
  68. window.mainloop()
  69.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement