Bem-vindo ao Fórum!

Registre-se agora mesmo e fique por dentro da maior comunidade de Cheats do Brasil!

Cr4cko

Gold Member
  • Content Count

    1,214
  • Joined

  • Last visited

  • Days Won

    3
  • WCoins

    1 [ Donate ]

Cr4cko last won the day on August 17 2017

Cr4cko had the most liked content!

Community Reputation

265 Excellent

About Cr4cko

  • Rank
    software architect & fullstack developer
  • Birthday 01/08/1996

Recent Profile Visitors

77 profile views
  1. Faz tempo que não posto nada, então lá vai um post polemico. Vamos construir um Spider! Spider é um script para capturar informações de sites. Vamos usa-lo para construir uma base de sites para poder criar um site de buscas. O código e como usar vai estar no fim do tópico. Abaixo vou explicar algumas coisas necessárias para você entender do funcionamento do Spider e também como podemos criar um site de buscas com esse script. Observações Nós nunca vamos chegar aos pés do Google, pois a cada segundo ele indexa diversas páginas, porém é tudo questão de tempo. Vamos criar um script que a partir de qualquer link, ele vai encontrar todos os links da página, salvar e mandar para uma fila de links para visitar. Sempre que ele visitar ele pega todos os links existentes, salva a URL, status que a página retorna e o conteúdo renderizado. Basicamente esse é o necessário para você começar a criar um Google. Com isso eu já tenho um site de buscas pronto? Claro que não. Esse tipo de script é conhecido como Spider. O nome Spider é justamente pois é como se uma aranha tivesse uma teia de sites. Vamos sair salvando em um banco de dados os dados NECESSÁRIOS para estudar melhores maneiras de apresentar resultados em um site de busca. O grande diferencial do Google é a forma que eles exibem os resultados. Eles possuem diversas regras e algoritmos para impedir sites que o titulo não condiz com a página interna, sites com vários links "clique aqui", sites que normalmente são usados para roubo, etc. Em nosso script vamos apenas criar a ferramenta para mapear todos os sites do planeta. Quanto tempo demora? Pode demorar a vida toda, 10 anos, 1 hora, o tempo que você quiser. O Spider inicia em 1 link qualquer e vai navegando em tudo o que existir. Por exemplo, se sua página de contato tem um link pro facebook, além de mapear todos os links do teu site, ele também vai em algum momento entrar no link do facebook e começar a mapear todas as páginas do facebook. Então o ideal é você criar excessões também, como: impedir mapear facebook, instagram, twitter, etc. Sites que não são de seu interesse. Outro grande diferencial do Google é que eles estão a muitos anos mapeando sites, então devem ter alguns trilhões de sites indexados e sempre atualizados. Será que teu computador aguenta 1 semana com um script rodando? Tem diversos pontos que precisam ser levados em consideração... Esse é o único script que tem? Não. Esse script eu quem fiz, é a lógica que eu criei. Porém você pode construir o seu, pegar o meu e deixa-lo mais performático, inclusive se quiser postar melhorias aqui eu posso adaptar também. Com certeza o script do google é mais avançado, mas basicamente entramos em um site, obtemos conteúdo, url e status. Depois de mapear alguns sites, como transformar em um site de Buscas? Depois de obter uma boa base de sites indexados, você precisa construir primeiramente seu site para trabalhar esses dados. Basicamente, uma página com um input para buscar e outra página para listar os sites com links. Entenda que isso é extremamente o básico. Quanto mais inteligência você colocar nessas duas páginas melhor. Com isso você vai precisar construir sua própria lógica para indexar e rankear os sites que você tem em sua base. Isso é com você, deixe sua imaginação fluir, estude bastante com os sites de buscas existentes. Posso te ajudar com algumas lógicas, só chamar no MP. Mas isso requer um minimo de conhecimento em criação de sites e arquitetura de sistemas/sites/plataformas. Pretendo criar um parte 2 mais pra frente, onde eu uso a base de dados colhida pelo spider para exibir resultados no site de buscas de teste. O que é status_code? Status code é o status de retorno da página. Isso é muito importante para entender se o link acessado existe, se não ta escrito de forma errada (faltando alguns parametros do tipo ?id=1), se não redireciona para outra página e tudo mais. Para saber todos os status &nbsp;code veja nesse link aqui, porém eu confesso que nem eu sei todos e a maioria nem aparece muito. Talvez num script de spider você possa ver boa parte dos status, mas ainda sim existem muitos. HORA DO COPIAR E COLAR Bom, recomendo não pular pra cá sem ler a parte de cima. Enfim, abaixo vou colocar a versão do código comentada explicando e a versão limpa. No exemplo, eu estou mapeando apenas a WEBCHEATS. Para deixar o spider mapear o mundo, procure por: if 'webcheats.com.br' in link['href'] and link['href'] not in LIST_LINKS: e troque por: if link['href'] not in LIST_LINKS: Código com comentários explicativos import time import json import requests from bs4 import BeautifulSoup, SoupStrainer from random import randint LIST_LINKS = [] LIST_VISITED = [] WEB = [] URL_START = 'https://www.webcheats.com.br' """ Nosso método run inicia o Spider. Vamos usar a biblioteca requests para fazer requisições nas páginas e obter os dados de retorno. No nosso caso, vamos focar em: - status_code - content - url """ def run(): spider_finished = False with requests.Session() as session: response = session.get(URL_START, headers={'User-Agent': 'Mozilla/5.0'}) # Entramos a primeira vez no site da WebCheats e pegamos todos os links. # Pegando todos os links, já temos uma fila inicial para visitar. get_all_links(response, URL_START) # Enquanto spider_finished não for true, ficar no loop. # O spider_finished vai ser True quando a lista de links encontrados # For do mesmo tamanho dos links visitados: len(LIST_LINKS) == len(LIST_VISITED) while not spider_finished: print(spider_finished) spider_finished = ( len(LIST_LINKS) == len(LIST_VISITED) ) for actual_url in LIST_LINKS: if not actual_url in LIST_VISITED: try: # criar um delay de segundos aleatorios (5s a 10s) time_sleep = randint(5, 10) time.sleep(time_sleep) response = session.get(actual_url, headers={'User-Agent': 'Mozilla/5.0'}) get_all_links(response, actual_url) print("( %s/%s ) [%s] (%s)" % ( len(LIST_VISITED), len(LIST_LINKS), response.status_code, actual_url ) ) LIST_VISITED.append(actual_url) WEB.append({ "status_code": str(response.status_code), "url": actual_url, "content": str(response.content), }) except: WEB.append({ "status_code": "BROKEN", "url": actual_url, }) pass else: while actual_url in LIST_LINKS: LIST_LINKS.remove(actual_url) print( "Spider finalizado. (SpiderLog: %s) (LIST_LINKS: %s)" % ( len(LIST_VISITED), len(LIST_LINKS) ) ) # Criar um arquivo .json com os dados obtidos. WEB_JSON = json.dumps([ob.__dict__ for ob in WEB]) timestr = time.strftime("%Y%m%d-%H%M%S") with open('data_%s.json' % timestr, 'w') as outfile: json.dump(WEB_JSON, outfile) """ O parametro HTML contem o conteúdo obtido no request do loop do Spider. Vamos ler esse conteúdo inteiro com a biblioteca BeautifulSoup. Vamos extrair todos os links existentes nesse HTML renderizado e armazenar na lista LIST_LINKS. Aqui você pode criar diversas condições para evitar links inúteis/quebrados. No caso eu coloquei 4 condições: - se o elemento da página <a> tem o atributo href e existe algo no atributo href. - se o link do atributo href tem http na string. se não tiver, atualiza concatenando link_da_pagina_acessada + path - se o link é exclusivo da webcheats (vms mapear só a WC no exemplo) - Se nosso link final não estiver na LIST_LINKS, armazena. """ def get_all_links(html, source_link): all_links = BeautifulSoup(html.content, 'html.parser', parse_only=SoupStrainer('a')) for link in all_links: if link.has_attr('href') and link['href']: # Se não tem http no link (ex.: <a href='/cr4cko'>logout</a>), complementar com url # resultado: https://www.webcheats.com.br/users + /cr4cko. if 'http' not in link['href']: link['href'] = "%s%s" % (source_link, link['href']) # Se o link é apenas da WebCheats e a url não é vazia e não está na # lista de links pra visitar, adiciona no LIST_LINKS. if 'webcheats.com.br' in link['href'] and link['href'] not in LIST_LINKS: LIST_LINKS.append(link['href']) # Iniciando o spider run() Código sem comentários ( 58 linhas e temos um spider 😘 ) import time import json import requests from bs4 import BeautifulSoup, SoupStrainer from random import randint LIST_LINKS = [] LIST_VISITED = [] WEB = [] URL_START = 'https://www.webcheats.com.br' """ Nosso método run inicia o Spider. Vamos usar a biblioteca requests para fazer requisições nas páginas e obter os dados de retorno. No nosso caso, vamos focar em: - status_code - content - url """ def run(): spider_finished = False with requests.Session() as session: response = session.get(URL_START, headers={'User-Agent': 'Mozilla/5.0'}) get_all_links(response, URL_START) while not spider_finished: print(spider_finished) spider_finished = ( len(LIST_LINKS) == len(LIST_VISITED) ) for actual_url in LIST_LINKS: if not actual_url in LIST_VISITED: try: time_sleep = randint(5, 10) time.sleep(time_sleep) response = session.get(actual_url, headers={'User-Agent': 'Mozilla/5.0'}) get_all_links(response, actual_url) print("( %s/%s ) [%s] (%s)" % ( len(LIST_VISITED), len(LIST_LINKS), response.status_code, actual_url ) ) LIST_VISITED.append(actual_url) WEB.append({ "status_code": str(response.status_code), "url": actual_url, "content": str(response.content), }) except: WEB.append({ "status_code": "BROKEN", "url": actual_url, }) pass else: while actual_url in LIST_LINKS: LIST_LINKS.remove(actual_url) print( "Spider finalizado. (SpiderLog: %s) (LIST_LINKS: %s)" % ( len(LIST_VISITED), len(LIST_LINKS) ) ) # Criar um arquivo .json com os dados obtidos. WEB_JSON = json.dumps([ob.__dict__ for ob in WEB]) timestr = time.strftime("%Y%m%d-%H%M%S") with open('data_%s.json' % timestr, 'w') as outfile: json.dump(WEB_JSON, outfile) def get_all_links(html, source_link): all_links = BeautifulSoup(html.content, 'html.parser', parse_only=SoupStrainer('a')) for link in all_links: if link.has_attr('href') and link['href']: if 'http' not in link['href']: link['href'] = "%s%s" % (source_link, link['href']) if 'webcheats.com.br' in link['href'] and link['href'] not in LIST_LINKS: LIST_LINKS.append(link['href']) run() Antes de rodar o código, você precisa ter o python instalado e o pip. Para instalar o pip, copie o código desse link e cole no arquivo no desktop chamado get-pip.py. Abra seu CMD, navegue até o desktop e roda python get-pip.py. Após instalar o pip, crie 2 arquivos em uma pasta para seu spider chamado: spider.py e requeriments.txt. No arquivo spider.py você joga o código do spider (a primeira ou a segunda versão, é a mesma coisa apenas uma com comentários e outra sem). No arquivo requeriments.txt: beautifulsoup4==4.7.1 bs4==0.0.1 certifi==2019.3.9 chardet==3.0.4 idna==2.8 requests==2.21.0 soupsieve==1.9 urllib3==1.24.1 No seu terminal, vá até essa pasta com esses 2 arquivos e rode: pip install -r requeriments.txt Ele vai instalar as bibliotecas necessárias para rodar o spider. Depois de instalar, rode: python spider.py e apenas aprecie. No final ele cria um arquivo json com todos os dados que você conseguiu. No meio do código tem um time.sleep(timer_sleep) que eu uso que é um random entre 5 -10 segundos. Criei isso pra não ser banido pelo site. Demora mais, porem se jogar num servidor você pode ficar a vida toda mapeando sites, anos e décadas. Créditos: eu, python, google. e nóis.
  2. Criei um site de enquetes aleatórias. Preciso de enquetes e dicas legais para criar. Em breve abro pros membros criarem enquetes também. A ideia é ser tipo uma rede social. Tem poucos usuários mas impulsionei no facebook uma publicação até que catei uns membros, mesmo sem participar nas enquetes. Fiquem a vontade! Site: https://www.votar.xyz/ Enquete sobre as eleições (segundo turno): https://www.votar.xyz/votacoes/1/results/
  3. Em quem vocês vão votar no segundo turno? https://www.votar.xyz/votacoes/1/results/
  4. Na verdade, se você tem um bom conhecimento em HTML CSS e Javascript, você consegue sim criar apps. Hoje em dia existe app hibrido. Você constrói todo app em HTML5 responsivo (layout adaptado para dispositivos moveis) e gera um app a partir do seu site. Se chama Progressive Web App. Existe essa forma e também existe a forma de criar um aplicativo no Android Studio usando o WebView. WebView é um componente que você chama um site dentro dele. Entao seu aplicativo meio que é uma carcaça que renderiza seu site. Conheço algumas ferramentas que facilitam esse build pra app (tanto ios quanto android). Ionioc, Cordova, Phonegap.. não sei como estão ultimamente, qual é o melhor. Segue ai uma listinha que encontrei de algumas outras ferramentas que fazem build: https://www.hongkiat.com/blog/mobile-frameworks/ Agora, se você não tem prioridade pra fazer app mas sim quer aprender a programar pra poder criar oq quiser na tua vida, recomendo uma linguagem foda no mercado e simples de aprender: Python. Tem uma enorme comunidade em todo o mundo e sintaxe simples. Conteúdo disso tem em todo lugar, youtube etc. Vai ter que começar do zero, e ir acompanhando. Pelo amor, não pule nenhuma parte, todo conhecimento inicial é necessário para se precaver no futuro. Abraços
  5. [B]"Quantas chances desperdicei Quando o que eu mais queria Era provar pra todo o mundo Que eu não precisava provar nada pra ninguém"[/B] Nós com nossa imaturidade de não estar satisfeitos de ser quem somos e tentarmos provar pro mundo que somos nós mesmos. Sacas? [B]"Me fiz em mil pedaços Pra você juntar E queria sempre achar Explicação pro que eu sentia"[/B] Quando estamos perdidos e confusos e exigimos atenção de um outro alguém. [B]"Como um anjo caído Fiz questão de esquecer Que mentir pra si mesmo É sempre a pior mentira"[/B] Aqui é bem objetivo. Mentir pra nos mesmos nos consome, dia após dia. [B]"Mas não sou mais tão criança A ponto de saber tudo"[/B] Apesar de tudo, "atualmente" ele é maduro a ponto de entender que não sabe de nada. [B]"Já não me preocupo se eu não sei por quê Às vezes o que eu vejo quase ninguém vê E eu sei que você sabe quase sem querer Que eu vejo o mesmo que você"[/B] Hoje ele não se preocupa se não tem todas as respostas. Que cada um tem sua visão do mundo (opiniões) mas, todos nós vemos a mesma coisa. [B]"Me disseram que você Estava chorando E foi então que percebi Como lhe quero tanto"[/B] Quando vemos alguém sofrendo por nós, chorando por nós, apesar de ser cruel, é uma prova concreta de que existe sentimento, que você é capaz de fazer alguém desmoronar. É uma prova, apesar de não tão saudável, de amor. Tipo isso é algumas coisas que eu consegui extrair, mas cada um vai entender de uma forma. As letras dele são tão genéricas que não da pra diferenciar se é um amor a um parente, amigo(a), namorado(a), etc. É bem foda. É um gênio. @Hagaro acho que não... Essa questão de tocar o foda-se é mais na juventude. É querer provar pra todo mundo algo. Que nessa canção ele diz "...que eu não precisava provar nada pra ninguém". Ele tocou vários `foda-ses` também, mas quando atingiu um certo nível de maturidade, começou a ter mais calma, a ser mais resiliente, a escutar mais, etc..
  6. Existe. Mas de qualquer forma você precisa ter algum tipo de conhecimento. Pois tem muita coisa que envolve, até mesmo uma publicacão de aplicativo.
  7. Você quer criar um programa como esse ou quer manipular esse programa? Se for criar, pode criar com qualquer linguagem backend (python, php, go lang, etc). Mas a linguagem não faz mágica. Se você está perguntando qual linguagem usaria, provavelmente você é bem iniciante. Você precisa aprender a programar, a criar prototipos em HTML5, depois aprender sobre API's para se conectar à API da bolsa (se é que tem), sobre banco de dados pra armazenar as informações de compra/venda, etc. Resumidamente: É como construir um avião. Você não ganha uma caixa de monta monta com um manual. Você tem que estudar física, matemática, etc. durante um bom tempo, pra conseguir entender o que você vai fazer. Montar é um passo além. Abraços
  8. Observe a letra abaixo, e poste seu entendimento sobre o que Renato Russo quis passar para a humanidade.
  9. Ame como se não houvesse o amanhã. Porque quando o individuo se for, ou você perder, você vai entender que todo aquele desgosto, ódio, raiva, rancor eram apenas coisas insignificantes. E o perder de vez, é a pior dor que existe. Seja uma namorada, um parente, um filho. Quantos ódios e raivas você tinha do tamanho de montanhas, e depois que você perdeu a pessoa percebeu que não eram NADA? Mas fique tranquilo, não se culpe. Infelizmente somos imaturos. São essas grandes perdas que nos fazem crescer e amadurecer. Afinal, tudo tem seu lado negativo e positivo. Pra quem está me perguntando o porque estou falando isso, é porque eu também perdi alguém. Mas não preciso entrar em detalhes. É só um texto para vocês refletirem do rancor que sentem hoje, da dor que sentem hoje, da culpa que sentem hoje. Tudo isso pode ser resolvido com perdão. E o perdão precisa partir de alguém. Tanto quem perdoa quanto quem quer ser perdoado. Quando é sincero, é surreal a sensação. E tão forte quanto perder alguém de vez, mas é positivo. E continue vivo. Não desista, resista. Pague pra ver o final dessa história chamada sua vida. Quando tudo parece estar dando errado e não existe saída, sempre nos surpreendemos com o que a vida nos proporciona. Abraços
  10. Cara, não sei ao certo só pela imagem. Mas se eu fosse você, deletaria as pastas do SQL Server (Caso tenha elas no seu pc ainda desde antes da restauração) e instalaria novamente. Lembre-se de verificar no painel de controle se você desinstalou tudo direitinho. As vezes você precisa dar uns passos pra trás pra entender melhor onde está o problema. Quando você restaura você mantem os arquivos? Ou limpa tudo? Que versão do SQL é esse? Abs #edit Como suspeitei, dando uma pesquisada o cara aqui fala que existe a possibilidade de ter os arquivos ai da sua ultima alteracao e talvez ele nao tenha permissao pra sobrescrever os arquivos. Melhor deletar mesmo e reinstalar. Abs Fonte: https://forum.imasters.com.br/topic/427423-resolvido%C2%A0instala%C3%A7%C3%A3o-no-windows7/?do=findComment&comment=1687730
  11. Remova os links de "like" pra ver a imagem corretamente. Ao invés de fatiar, porque você não usa CSS para organizar a estrutura? O Dreamweaver feio o código.
  12. Parabéns jhow, meio atrasado mas ta valendo (pelo up). Se cuida, abraços <3
  13. Essa série, final space, é do caralho. Mó lição. E engraçada kkk
    1. tartalos

      tartalos

      Amei ela parceiro, tipo é algo que acontecesse sempre :'( Avocato*<3