Baixe o app para aproveitar ainda mais
Prévia do material em texto
Hackeando a Web com Python 3 Marcel Caraciolo @marcelcaraciolo Desenvolvedor, Cientista, Instrutor, co- fundador do PyCursos, contribui com projetos open-source na área de ML, trabalha com Python há 6 anos, interessado em mobile, educação, machine learning and dadoooossss! Recife, Brazil - http://aimotion.blogspot.com http://bit.ly/IxkwD4 Quem é Marcel ? Este sou eu! Tutorial para iniciantes! Material adaptado dos Slides do Professor Fernando Masanori! ! ! ! www.slideshare.net/fmasanori/hackeando-o- facebook-e-o-twitter-com-python-3- campus-party-2013 Agenda • Intro ao Python 3 Brincando com Facebook Brincando com Reddit & MongoDB Brincando com Open Data & Twitter Material para Casa Brincando com Foursquare Conhecendo a audiência • Professores Estudantes Sabem programar Profissionais de TI Sabem programar em Python Primeiro prêmio We love Python! • Permite focar no problema, sem perder tempo na sintaxe • Interativa • Alta produtividade • Baterias inclusas • Comunidade livre, forte, diversificada, alegre e acolhedora • Orientada a objetos, funcional, estruturada • Uso geral vs nichos • Simples de iniciar, sem esgotar We Love Python http://www.python.org/psf/diversity/ We Love Python Meta: 20 % de presença feminina em 2015 We Love Python Meta: 25% não americanos em 2015 We Love Python We Love Python Hello World We Love Python Hello World Origem do nome Python 1h video/s 4 billion views Python: quem usa Quem usa ? Quem usa ?Python: quem usa Quem usa ?Python: quem usa Quem usa ?Python: quem usa Quem usa ?Python: quem usa Quem usa ?Python: quem usa Quem usa ?Python: quem usa Quem usa ?Python: quem usa Python: quem usa Quem usa ?Python: quem usa Você sabia que o “Pi” do nome se origina de Python? Quem usa ? Python: quem usa PopularidadePopularidade Github e StackOverflow PopularidadeJobTrends Indeed.com PopularidadeLinguagem do ano TIOBE em 2007 e 2010 Linguagem Favorita do LinuxJournal: 2009 a 2012 Popularidade Linguagem do ano TIOBE em 2007 e 2010 O que falam de Python ? “Se o Voldemort quisesse ser realmente imortal, ele teria programado uma horcrux recursiva em Python.” Harry Potter. O que falam de Python O que falam de Python ? “A vida é melhor sem chaves“. “A vida é curta! Você precisa de Python”. “Python me ajuda a focar nos meus conceitos em vez de ficar brigando com a linguagem”. “Eu não preciso digitar muito. Mas o que eu digito é certo”. Bruce Eckel, autor do best seller “Thinking in Java”. O que falam de Python O que falam de Python ? “Python é uma das cinco mais importantes linguagens que todo programador deve conhecer” Bjarne Stroustrup, criador de C++ O que falam de Python Simples de Aprender Neil Ibata, 15 anos, foi aprender a programar em Python com o pai e virou capa da revista Nature. Linguagem poderosa, mas simples de aprender Simples de Aprender Programa de uma menina de 12 anos do Projeto CEDET Decolar Linguagem poderosa, mas simples de aprender Tempo para ser produtivo C 2 anos Java 6 meses Python 1 mes Tempo Para Ser Produtivo Poder de Expressividade Expressive Power Language Statements Lines C 1 1 Java 2.5 1.5 Python 6 6.5 Segundo prêmio • Conta no Facebook • Internet • Python 3 • IDLE ou semelhante • Vamos fazer um aquecimento • Tutorial completo da linguagem em Python for Zombies (YouTube) Check List Aquecimento: Install Python 3 • Windows – download – executar > next > next... • Linux – sudo apt-get install idle-python3.3 • Mac OS X – sudo port install python32 Aquecimento: Using Python 3 • Windows – Iniciar > Programas > Python3.3 > IDLE (Python GUI) • Linux (terminal) – idle-python3.3 & • Mac OS X (terminal) – IDLE3.3 & Aquecimento: hello world No modo interativo você recebe a resposta para cada comando executado Aquecimento: modo interativo • 2**100000 • dir(“abacate”) • help(“abacate”.upper) • “abacate”.upper() • a = “abacate” • b = 42 • a, b = b, a • print (a, b) Aquecimento: modo interativo • import random • random.randint(1, 100) • random.randint(1, 100) • random.choice(42, 13, 24, 7, 3, 10) • print (chr(33000)) • import this • import antigravity Aquecimento: errando No Python os espaços iniciais são importantes Aquecimento: errando String diferente de inteiro Aquecimento: edition mode No modo edição você precisa “rodar” o programa (Run Module ou F5) Aquecimento: edition mode Aquecimento: edition mode Sempre use a extensão “.py” para não perder as cores do seu programa Aquecimento: jogo simples https://gist.github.com/fmasanori/6029123 https://gist.github.com/marcelcaraciolo/7715647 https://gist.github.com/marcelcaraciolo/7715664 for == while enrustido Códigos equivalentes: for durante o dia vira while à noite for == while enrustido Códigos equivalentes for == while enrustido Códigos equivalentes Aquecimento: criptografia Feito por outra menina de 12 anos • O dicionário em si consiste em relacionar uma chave a um valor específico • Diferentemente das listas, onde o índice é um número, dicionários utilizam suas chaves como índice • Para adicionar novos elementos não preciso de append, basta fazer a atribuição – Se a chave já existe: o valor associado é alterado – Se a chave não existe: a nova chave é adicionada Dictionaries Dictionaries Dictionaries • Faça um programa que leia o arquivo alice.txt e conte o número de ocorrências de cada palavra no texto. Obs.: para saber os caracteres especiais use import string e utilize string.punctuation • http://www.gutenberg.org/cache/epub/11/pg 11.txt Dictionaries http://www.gutenberg.org/cache/epub/11/pg11.txt Dictionaries https://gist.github.com/4673017 https://gist.github.com/marcelcaraciolo/7715709 JSON killer module JSON Killer! • http://json.org/ • Independente de linguagem • Pares nome/valor • Lista ordenada • Muito adotado atualmente • Alternativa para o XML – XML mais verbosa – XML menor legibilidade Java Script Object Notation JavaScript Object Notation Chuck Norris Nerdy Jokes https://gist.github.com/4745061 Chuck Norris Nerdy Jokes https://gist.github.com/marcelcaraciolo/7715734 Facebook Hacking Hackers não são “do mal”? Facebook Hacking “O Facebook é dirigido por hackers. A maioria das pessoas pensa de um hacker como alguém que invade um sistema de computador. Mas nós vemos isso como uma filosofia. Aqui, os hackers assumem que sempre há uma maneira melhor, mais eficiente de resolver problemas.” facebook.com/careers (2012) Facebook Hacking {'first_name': 'Marcel',! 'gender': 'male',! 'id': '100000202630360',! 'last_name': 'Caraciolo',! 'link': 'http://www.facebook.com/marcel.caraciolo',! 'locale': 'en_US',! 'name': 'Marcel Caraciolo',! 'username': 'marcel.caraciolo'}https://gist.github.com/marcelcaraciolo/7715741 https://gist.github.com/marcelcaraciolo/7715760 • https://developers.facebook.com/do cs/reference/api/examples/ • Objetos JSON • Links autenticados • Obs.: access_token expira • Autenticar novamente neste caso Graph API Anote o formato! https://developers.facebook.com/docs/reference/api/ examples/ Copie o access token! https://developers.facebook.com/tools/explorer Copie o access token! https://developers.facebook.com/tools/explorer https://gist.github.com/4674792 Facebook Friends https://gist.github.com/marcelcaraciolo/7715831 https://gist.github.com/4684752 Facebook Friends Photos https://gist.github.com/marcelcaraciolo/7715862 Android Wallpaper Android Wallpaper https://gist.github.com/marcelcaraciolo/7715921 Maria Luiza: Como se o evento não já estivesse bom, o CITi ainda melhora !!!!! #talkabit #Euvou! ! Victor Maristane: Garoto Propaganda do Talk a Bit no NE10, hehehe! ! (A propósito, não deixem de se inscrever no Talk a Bit++: http://citi.org.br/talkabit :), essa edição vai conseguir ser absurdamente melhor :DD)! ! Jader Anderson: Boa filosofia para um encontro: Lean, Code e Play.! ! http://citi.org.br/talkabit/! ! Maria Luiza: Eu não sei se te contei MAS, o Talk a Bit custa apenas R$ 16,00 e já é dia 30/11. Vai ficar de fora é ??! Se inscreve logo:! http://citi.org.br/talkabit/ Idéias para o futuro ?! Análise de Sentimentos! (tribute to Aaron Swartz, cofounder of Reddit, nov-1986, jan-2013) Reddit MongoDB Client https://gist.github.com/4691077 (by 10gen) Reddit Client https://gist.github.com/marcelcaraciolo/7716004 Question: cx_freeze “zlib not avaiable” error when using multiple threads #comments: 3 http://www.reddit.com/r/Python/comments/1ro891/question_cx_freeze_zlib_not_avaiable_error_when/ ! Python Selenium - Open new tab / focus tab / close tab #comments: 9 http://www.reddit.com/r/Python/comments/1rmg4n/python_selenium_open_new_tab_focus_tab_close_tab/ ! Python 3 gets some credit for how it chose to handle Unicode compared to other languages #comments: 24 http://mortoray.com/2013/11/27/the-string-type-is-broken/ ! I am having too much trouble installing pygame. #comments: 1 http://www.reddit.com/r/Python/comments/1rnxnq/i_am_having_too_much_trouble_installing_pygame/ ! Not exclusively Python, but a nice tool to generate regex code in multiple languages. #comments: 13 http://txt2re.com/ ! Setting up a (web) development environment #comments: 11 http://www.reddit.com/r/Python/comments/1rnfle/setting_up_a_web_development_environment/ ! Building a Flask Blog: Part2 #comments: 2 http://pypix.com/python/building-flask-blog-part2/ Flexible Schema MongoDB == JSON MongoDB == BSON Banco Relacional Relational DB Reddit MongoDB Client https://gist.github.com/marcelcaraciolo/7716030 Reddit MongoDB Client Foursquare & TagCloud Foursquare & TagCloud's Checklist 1. Instalar pygame 2. Instalar simplejson 3. Instalar pytagcloud https://developer.foursquare.com/docs/ https://developer.foursquare.com/docs/venues/search https://developer.foursquare.com/docs/venues/tips https://gist.github.com/marcelcaraciolo/7717945 Delta Expresso Twitter & OpenData Twitter & OpenData Checklist 1. tweepy Acesso Twitter Autenticado • Até junho de 2013 era possível acessar várias informações do Twitter sem necessidade de autenticação • O Twitter resolveu melhorar a segurança e utilizar OAuth (Open Authentication) até o acesso básico (search) • Neste protocolo, recebemos uma chave e senha que permite o acesso a um recurso específico durante algum tempo Acesso Twitter Autenticado Acesso Twitter Autenticado • O usuário do Twitter precisa autorizar um programa externo, que recebe um consumer_key e um consumer_secret • Na posse dessa chave e senha podemos pegar uma chave e senha de acesso temporária • Não se preocupe se você não entender o Tweepy. Ano passado era mais simples e só recentemente ficou mais complicado acessar o Twitter Acesso Twitter Autenticado Acesso Twitter Autenticado Obtendo Chave e Senha de Acesso https://dev.twitter.com/ Acesso Twitter AutenticadoObtendo Chave e Senha de Acesso Acesso Twitter Autenticado Acesso Twitter AutenticadoEnviando mensagens Enviando mensagens! Lendo API do Transito Recife Lendo API do Transito Recife http://www.recife.pe.gov.br/transito/recuperarPontos.aspx https://gist.github.com/marcelcaraciolo/7717717 Lendo API do Transito Recife Material para Casa Twitter Dev API Facebook Dev API Foursquare API Portal Transparencia Material para CasaMaterial para aprofundamento http://www.novatec.com.br/livros/python-cookbook/ Material para CasaMaterial para aprofundamento Obs.: o autor já anunciou a segunda edição, aguardem... Material para CasaMaterial para aprofundamento Obs.: o autor já anunciou a segunda edição, aguardem... Material para CasaMaterial para aprofundamento Material para CasaMaterial para aprofundamento Material para CasaMaterial para aprofundamento Material para Casa Material para aprofundamento Web Scraping http://pyvideo.org/video/609/web-scraping- reliably-and-efficiently-pull-data Material para Casa http://beta.pycursos.com/python-para-zumbis/ Python para Zumbis (gratuito) http://pycursos.com/python-para-zumbis Hackeando a Web com Python 3 Marcel Caraciolo @marcelcaraciolo Desenvolvedor, Cientista, Instrutor, co- fundador do PyCursos, contribui com projetos open-source na área de ML, trabalha com Python há 6 anos, interessado em mobile, educação, machine learning and dadoooossss! Recife, Brazil - http://aimotion.blogspot.com
Compartilhar