-
Conteúdo Similar
-
Por Marcosvn
Quero desenvolver um site semelhante a esse: https://www.catalogosofertas.com.br/
No qual eles enviam diversas ofertas e encartes recentes de lojas em geral e supermercados. Eles possuem muito conteúdo que são atualizados frequentemente, no entanto, muitos dos supermercados, por exemplo, não possuem os folhetos de cada cidade em seus sites. De modo que pudesse criar um scraper pra ficar acompanhando as atualizações.
Ao mesmo tempo não imagino que eles tenha muitos funcionários fazendo isso, pois são muitas lojas e supermercados que o encarte vence em alguns dias. Oq me faz pensar que manualmente é inviável manter as atualizações.
Queria saber de vocês, que tem experiência com a área ou mesmo que já tenham trabalhado em projetos semelhantes, como posso me organizar para fazer isso acontecer assim como no site de exemplo: https://www.catalogosofertas.com.br/
Como posso fazer isso ? Realmente teria q ficar criando diversos scraper e códigos pra ficar acompanhando os encartes de cada loja e supermercado?
Qual dica, sugestão , orientação poderá me ser muito útil, pois estou confuso sobre como fazer isso acontecer.
-
Por Bruno Soares Slva
Boa tarde pessoal,
Estou com problemas para criar um robô. O mesmo esta dando na linha em negrito. Segue abaixo o erro que está aparecendo. Alguma informação. Estou usando o VSCode versão: 1.73.0, Python versão 3.8.0, chromedriver versão 18 (antepenúltima). Segue código e erro abaixo:
Erro mostrado:
Windows PowerShell
Copyright (C) Microsoft Corporation. Todos os direitos reservados.
Experimente a nova plataforma cruzada PowerShell https://aka.ms/pscore6
PS C:\Users\soare\Documents\Estudos\Python\projectCourse> & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52080' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py'
Traceback (most recent call last):
File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
cli.main()
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
run()
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
runpy.run_path(target, run_name="__main__")
PS C:\Users\soare\Documents\Estudos\Python\projectCourse> c:; cd 'c:\Users\soare\Documents\Estudos\Python\projectCourse'; & 'C:\Users\soare\AppData\Local\Programs\Python\Python38\python.exe' 'c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher' '52168' '--' 'c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py'
Traceback (most recent call last):
File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Users\soare\AppData\Local\Programs\Python\Python38\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy\__main__.py", line 39, in <module>
cli.main()
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main
run()
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file
runpy.run_path(target, run_name="__main__")
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 320, in run_path
code, fname = _get_code_from_file(run_name, path_name)
File "c:\Users\soare\.vscode\extensions\ms-python.python-2022.16.1\pythonFiles\lib\python\debugpy\_vendored\pydevd\_pydevd_bundle\pydevd_runpy.py", line 294, in _get_code_from_file
code = compile(f.read(), fname, 'exec')
File "c:\Users\soare\Documents\Estudos\Python\projectCourse\projeto1\roboweb1.py", line 17
driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
PS C:\Users\soare\Documents\Estudos\Python\projectCourse>
Obsrvação:
O erro está caindo nesta linha
driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options)
Codigo:
from selenium import webdriver from selenium.webdriver.common.keys import Keys import time options = webdriver.ChromeOptions() options.add_argument('--disable-logging') options.add_argument('--log-level=3') driver = webdriver.Chrome('C:\Users\soare\Documents\Estudos\Python\chromedriver', options=options) driver.get("https://registro.br/") pesquisa = driver.find_elements_by_id('is-avail-field') pesquisa.clear() pesquisa.send_keys('roboscompython.com.br') pesquisa.send_keys(Keys.RETURN) time.sleep(8) driver.close()
-
Por Rafael Castelhano
Boa tarde,
Estou tentando criar uma imagem dinamicamente por javascript e carregá-la no input do formulário, apesar da imagem ser gerada corretamente, ao validar o formulário no python é retornado um erro alegando que o arquivo de imagem é inválido ou está corrompido.
Segue gist com o código:
https://gist.github.com/castelhano/bd72947e13421606453798bbf219cc74
-
Por TheLord23
ESTOU COMEÇANDO AGORA NA PROGRAMAÇÃO COM VISUALG E TERIA QUE COLOCAR ESTE CODIGO EM UM LAÇO DE REPETIÇÃO.
POREM NÃO ESTOU CONSEGUINDO PODERIAM ME AJUDAR ?
SÓ PENSANDO QUE O USUÁRIO IRA DIGITAR O TAMANHO DO VETOR, APOS ISSO CADA OPÇÃO QUE ELE ESCOLHER E ELA SER EXECUTADA DE FORMA CORRETA ELE VOLTARA PARA O MEUNU PRINCIPAL DAS OPÇÕES ATE QUE ELE SELECIONE A OPÇÃO "F"
POREM TENTEI ESCREVELO USANDO ENQUANTO MAS ACABOU QUE EU NÃO CONSIGO PREVINIR OS ERROS DO USUÁRIO QUANDO ELE COLOCA AS INFORMAÇÕES
TIPO:
-ARMAZENAR UM NÚMERO NO VETOR E ESSE NÚMERO NÃO SER SOBRESCREVIDO ATE QUE O PROGRAMA SEJA ENCERRADO
-SE ELE DIGITAR PRA BUSCAR OU INSERIR O NÚMERO ZERO O PROGRAMA INFORMAR QUE O VALOR É INVÁLIDO
TENTEI USAR PROCEDIMENTOS E FUNÇÕES MAS OS ERROS CONTINUARAM.
Algoritmo "DESAFIO"
Var
AUX,CONTADOR,BUSCAR:INTEIRO
POSICAO,AUX_TEMP:INTEIRO
OPCAO:CARACTERE
RESULT_BUSCA: LOGICO
SOMA_VET:REAL
NUMERO:VETOR[1..500]DE INTEIRO
Inicio
ESCREVAL("*********************************")
ESCREVAL("* CADASTRO DE VETORES - DESAFIO *")
ESCREVAL("*********************************")
ESCREVA("DIGITE O TAMANHO DO VETOR A SER CADASTRADO: ")
LEIA(AUX)
NUMERO[AUX] <- AUX
ESCREVAL("A - Cadastrar um novo número;")
ESCREVAL("B - Buscar um número")
ESCREVAL("C - Excluir um número;")
ESCREVAL("D - Listar os números cadastrados;")
ESCREVAL("E - Exibir a soma dos números do vetor;")
ESCREVAL("F - Sair do sistema.")
LEIA(OPCAO)
OPCAO <- MAIUSC(OPCAO)
ESCOLHA OPCAO
CASO "A"
PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
ESCREVA("DIGITE O VALOR QUE SERÁ ARMAZENADO NA",CONTADOR,"ª POSIÇÃO DO VETOR: ")
LEIA(NUMERO[CONTADOR])
FIMPARA
CASO "B"
ESCREVA("QUAL NÚMERO DESEJA ENCONTRAR: ")
LEIA(BUSCAR)
PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
SE NUMERO[CONTADOR] = BUSCAR ENTAO
RESULT_BUSCA <- VERDADEIRO
POSICAO <- CONTADOR
FIMSE
FIMPARA
PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
ESCREVAL(NUMERO[CONTADOR])
FIMPARA
ESCREVAL("")
ESCREVAL("---------")
SE RESULT_BUSCA = VERDADEIRO ENTAO
ESCREVAL("O NÚMERO",BUSCAR,"FOI ENCONTRADO E ESTA NA POSIÇÃO",POSICAO)
SENAO
ESCREVAL("O NÚMERO NÃO FOI ENCONTRADO !")
FIMSE
CASO "C"
escreval("QUAL NÚMERO DESEJA EXCLUIR DO VETOR: ")
leia(BUSCAR)
SE NUMERO[CONTADOR] = BUSCAR ENTAO
NUMERO[CONTADOR] <- 0
ESCREVAL("O NÚMERO",BUSCAR,"NA POSIÇÃO",POSICAO,"DO VETOR FOI EXCLUIDO !")
FIMSE
PARA CONTADOR DE 1 ATE NUMERO[AUX]
PARA AUX DE CONTADOR + 1 ATE AUX FACA
SE NUMERO[AUX] > NUMERO[CONTADOR]
AUX_TEMP <- NUMERO[AUX]
NUMERO[AUX] <- NUMERO[CONTADOR]
NUMERO[CONTADOR] <- AUX_TEMP
FIMPARA
FIMPARA
ESCREVA("VALROES DO VETOR: ")
PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
ESCREVAL(NUMERO[CONTADOR])
FIMPARA
CASO "D"
ESCREVA("VALORES DO VETOR: ")
PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
ESCREVAL(NUMERO[CONTADOR])
FIMPARA
CASO "E"
PARA CONTADOR DE 1 ATE NUMERO[AUX] FACA
SOMA_VET <- SOMA_VET + NUMERO[CONTADOR]]
FIMPARA
ESCREVAL("")
ESCREVA("A SOMA DO VETOR É:",SOMA_VET)
CASO "F"
ESCREVAL("ENCERRANDO SISTEMA...")
OUTROCASO
ESCREVAL("OPÇÃO INVÁLIDA !")
FIMESCOLHA
Fimalgoritmo
-
Por Juliana dos Santos
Oi gente,
Eu tenho uma tabela no banco de dados do snowflake que é atualizada por um flat file que é atualizado a cada quinze dias; Sempre que os dados são atualizados nesse flat file ele sobrescreve as informações anteriores e assim não temos histórico dos dados que estavam no banco antes da ultima atualização, isso esta causando uma dor de cabeça por que sempre que ocorre algum erro não temos como voltar para o resultado anterior e o flat file tem que ser refeito por algum analista.
As configurações do banco de dados foram feitas em Sql, enquanto o esquema que rodam para jogar as informações do flat file para a tabela do banco esta em python.
Eu acabei de chegar a essa área e herdei essa criança e tenho pensado em como resolve-lo e criar uma nova tabela que não sobrescreva mas sim empilhe as informações, porem existe uma grande pegadinha nesse processo, esse flat file é atualizado muitas vezes até que ele chegue a sua "versão final" que é utilizada para o fechamento, esse fechamento que não acontece sempre no mesmo dia. Para que o histórico seja confiável ele não pode empilhar os dados toda vez que atualizarmos, apenas quando realmente for fechado.
Vocês conseguem me ajudar? O que devo fazer? Criar um fluxo com algum trigger? mudar a forma que o flat file é alimentado?
Me ajudem a enxergar algum caminho para resolver o que foi criado antes da minha chegada
Desde já agradeço,
Um beijo e um queijo.
Ju
-