Existe alguma regra para a estrutura “for variavel in array:”, na qual a variavel não pode ser recriada ou é algo que deixo passar despercebido? Só o primeiro loop da linha 34 dá certo:
import time
from os import system
try:
import requests
except Exception as e:
system('pip install requests')
try:
from bs4 import BeautifulSoup
except Exception as e:
system('pip install beautifulsoup4')
def limpar():
if system('clear'): system('cls')
while True:
while True:
try:
url = input(f'Informe o site que quer pegar. >>> ')
tag = input(f'Informe a tag que quer pegar. Se quiser mais de uma, separe-as por vírgula(s). >>> ').strip().split(',')
page = requests.get(url)
if page.status_code != 200:
raise Exception('O código de retorno do site não foi ok (200)')
break
except Exception as e:
print(f'Verifique se faltou o protocolo e se o endereço está correto. Erro >>> {e}.')
opcao = input('Sair do programa? S para sim. Outra tecla para continuar. >>> ')
if opcao.lower() == 's':
print(f'Bye! Have a beautiful time.')
quit()
if page.status_code == 200:
soup = BeautifulSoup(page.text, 'html.parser')
for i in range(0, len(tag)):
conteudo = ''
for texto in soup.find_all(tag[i]):
print(f'{texto.get_text()}')
conteudo += f'{texto.get_text()}\n'
gravar = input(f'\nDeseja gravar em arquivo, o conteúdo da tag >> {tag[i]} << ? S para sim, outra tecla para não. >>>> ')
if gravar.lower() == 's':
limpar()
try:
nomeArquivo = input(f'Informe o nome do arquivo com caminho de pasta, caso queira salvar em subdiretórios. Mesmo vale para diretórios superiores. >>> ')
with open(nomeArquivo, 'w') as arquivo:
arquivo.write(conteudo)
print(f'Arquivo "{nomeArquivo}" gravado com sucesso.')
except Exception as e:
print(f'Erro >>> {e}.')
opcao = input(f'Deseja continuar? S para sim. Outra tecla para não. >>> ')
if opcao.lower() != 's':
print(f'Até mais.')
quit()
if system('clear'): system('cls')