Oficina Python: Hackeando a Web com Python 3

5,698 views
5,583 views

Published on

Workshop realizado na II Edição do Talk a Bit no CIN/UFPE. Em 30.11.2013

Published in: Technology
2 Comments
30 Likes
Statistics
Notes
No Downloads
Views
Total views
5,698
On SlideShare
0
From Embeds
0
Number of Embeds
271
Actions
Shares
0
Downloads
459
Comments
2
Likes
30
Embeds 0
No embeds

No notes for slide

Oficina Python: Hackeando a Web com Python 3

  1. 1. Hackeando a Web com Python 3 http://bit.ly/IxkwD4 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
  2. 2. Quem é Marcel ? Este sou eu!
  3. 3. Tutorial para iniciantes!
  4. 4. Material adaptado dos Slides do Professor Fernando Masanori! ! ! ! www.slideshare.net/fmasanori/hackeando-ofacebook-e-o-twitter-com-python-3campus-party-2013
  5. 5. Agenda Intro ao Python 3 Brincando com Facebook Brincando com Reddit & MongoDB Brincando com Foursquare Brincando com Open Data & Twitter Material para Casa
  6. 6. Conhecendo a audiência Professores Estudantes Profissionais de TI Sabem programar Sabem programar em Python
  7. 7. Primeiro prêmio
  8. 8. We love Python!
  9. 9. • 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
  10. 10. We Love Python
  11. 11. http://www.python.org/psf/diversity/
  12. 12. We Love Python Meta: 20 % de presença feminina em 2015
  13. 13. We Love Python Meta: 25% não americanos em 2015
  14. 14. Python: quem usa Quem usa ? 1h video/s 4 billion views
  15. 15. Quem usa usa Python: quem ?
  16. 16. Python: quem usa Quem usa ?
  17. 17. Quem usa ? Python: quem usa
  18. 18. Python: quem ? usa Quem usa
  19. 19. Python: quem usa Quem usa ?
  20. 20. Python: quem usa Quem usa ?
  21. 21. Python: quem usa Quem usa ?
  22. 22. Quem usa usa ? Python: quem Você  sabia  que  o  “Pi”  do  nome  se  origina  de  Python?
  23. 23. Quem usa ? Python: quem usa
  24. 24. Popularidade Github e Popularidade StackOverflow
  25. 25. JobTrends Indeed.com Popularidade
  26. 26. Popularidade Linguagem do ano TIOBE em 2007 e 2010 Linguagem Favorita do
  27. 27. Popularidade Linguagem do ano TIOBE em 2007 e 2010
  28. 28. O que falam de Python ? O que falam de Python “Se o Voldemort quisesse ser realmente imortal, ele teria programado uma horcrux recursiva  em  Python.”  Harry Potter.
  29. 29. O que falam de Python ? que falam de Python O “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”.
  30. 30. 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++
  31. 31. Linguagem poderosa, mas Simples de Aprender simples de aprender Neil Ibata, 15 anos, foi aprender a programar em Python com o pai e virou capa da revista Nature.
  32. 32. Linguagem poderosa, mas Simples de Aprender simples de aprender Programa de uma menina de 12 anos do Projeto CEDET Decolar
  33. 33. Tempo paraSer Produtivo ser produtivo Tempo Para C 2 anos Java 6 meses Python 1 mes
  34. 34. Expressive Power Poder de Expressividade Language C Java Python Statements 1 2.5 6 Lines 1 1.5 6.5
  35. 35. Segundo prêmio
  36. 36. Check List • • • • • • Conta no Facebook Internet Python 3 IDLE ou semelhante Vamos fazer um aquecimento Tutorial completo da linguagem em Python for Zombies (YouTube)
  37. 37. Aquecimento: Install Python 3 • Windows – download – executar > next > next... • Linux – sudo apt-get install idle-python3.3 • Mac OS X – sudo port install python32
  38. 38. Aquecimento: Using Python 3 • Windows – Iniciar > Programas > Python3.3 > IDLE (Python GUI) • Linux (terminal) – idle-python3.3 & • Mac OS X (terminal) – IDLE3.3 &
  39. 39. Aquecimento: hello world No modo interativo você recebe a resposta para cada comando executado
  40. 40. Aquecimento: modo interativo • • • • • • • • 2**100000 dir(“abacate”) help(“abacate”.upper) “abacate”.upper() a  =  “abacate” b = 42 a, b = b, a print (a, b)
  41. 41. 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
  42. 42. No Python os espaços iniciais são importantes
  43. 43. Aquecimento: errando
  44. 44. String diferente de inteiro
  45. 45. Aquecimento: edition mode No  modo  edição  você  precisa  “rodar”  o  programa  (Run Module ou F5)
  46. 46. Aquecimento: edition mode Sempre  use  a  extensão  “.py”  para  não  perder  as  cores  do  seu  programa
  47. 47. Aquecimento: jogo simples https://gist.github.com/marcelcaraciolo/7715647 https://gist.github.com/fmasanori/6029123
  48. 48. https://gist.github.com/marcelcaraciolo/7715664
  49. 49. Códigos equivalentes: for durante o dia vira while à noite
  50. 50. for == while enrustido Códigos equivalentes
  51. 51. for == while enrustido Códigos equivalentes
  52. 52. Aquecimento: criptografia Feito por outra menina de 12 anos
  53. 53. Dictionaries • 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
  54. 54. Dictionaries
  55. 55. 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 http://www.gutenberg.org/cache/epub/11/pg11.txt
  56. 56. https://gist.github.com/4673017 https://gist.github.com/marcelcaraciolo/7715709
  57. 57. JSON killer module JSON Killer!
  58. 58. Java Script Object Notation JavaScript Object Notation • • • • • • http://json.org/ Independente de linguagem Pares nome/valor Lista ordenada Muito adotado atualmente Alternativa para o XML – XML mais verbosa – XML menor legibilidade
  59. 59. Chuck Norris Nerdy Jokes Chuck Norris Nerdy Jokes https://gist.github.com/marcelcaraciolo/7715734 https://gist.github.com/4745061
  60. 60. Hackers não são  “do  mal”?
  61. 61. 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)
  62. 62. {'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
  63. 63. https://gist.github.com/marcelcaraciolo/7715760
  64. 64. Graph API • https://developers.facebook.com/do cs/reference/api/examples/ • Objetos JSON • Links autenticados • Obs.: access_token expira • Autenticar novamente neste caso
  65. 65. Anote o formato! https://developers.facebook.com/docs/reference/api/ examples/
  66. 66. Copie o access token! https://developers.facebook.com/tools/explorer
  67. 67. Copie o access token! https://developers.facebook.com/tools/explorer
  68. 68. Facebook Friends https://gist.github.com/marcelcaraciolo/7715831 https://gist.github.com/4674792
  69. 69. Facebook Friends Photos https://gist.github.com/4684752 https://gist.github.com/marcelcaraciolo/7715862
  70. 70. Android Wallpaper
  71. 71. Android Wallpaper
  72. 72. https://gist.github.com/marcelcaraciolo/7715921
  73. 73. 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!
  74. 74. Reddit MongoDB Client (tribute to Aaron Swartz, cofounder of Reddit, nov-1986, jan-2013)
  75. 75. Reddit Client (by 10gen) https://gist.github.com/marcelcaraciolo/7716004 https://gist.github.com/4691077
  76. 76. 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/
  77. 77. MongoDB == BSON MongoDB == JSON Flexible Schema
  78. 78. Banco Relacional Relational DB
  79. 79. Reddit MongoDB Client https://gist.github.com/marcelcaraciolo/7716030
  80. 80. Reddit MongoDB Client
  81. 81. Foursquare & TagCloud
  82. 82. Foursquare & TagCloud's Checklist 1. Instalar pygame 2. Instalar simplejson 3. Instalar pytagcloud
  83. 83. https://developer.foursquare.com/docs/
  84. 84. https://developer.foursquare.com/docs/venues/search
  85. 85. https://developer.foursquare.com/docs/venues/tips
  86. 86. https://gist.github.com/marcelcaraciolo/7717945
  87. 87. Delta Expresso
  88. 88. Twitter & OpenData
  89. 89. Twitter & OpenData Checklist 1. tweepy
  90. 90. Acesso Twitter Autenticado Autenticado Acesso Twitter • 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
  91. 91. Acesso Twitter Autenticado Autenticado Acesso Twitter • 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
  92. 92. Acesso Twitter Autenticado Obtendo Chave e Senha de Acesso https://dev.twitter.com/
  93. 93. Obtendo Chave e Senha de Acesso Acesso Twitter Autenticado
  94. 94. Acesso Twitter Autenticado
  95. 95. Enviando mensagens Acesso Twitter Autenticado
  96. 96. Enviando mensagens!
  97. 97. Lendo API do Transito Recife
  98. 98. Lendo API do Transito Recife http://www.recife.pe.gov.br/transito/recuperarPontos.aspx
  99. 99. https://gist.github.com/marcelcaraciolo/7717717
  100. 100. Lendo API do Transito Recife
  101. 101. Material para Casa Facebook Dev API Twitter Dev API Foursquare API Portal Transparencia
  102. 102. Material aprofundamento para Casa Material para http://www.novatec.com.br/livros/python-cookbook/
  103. 103. Material para aprofundamento Material para Casa Obs.: o autor já anunciou a segunda edição, aguardem...
  104. 104. Material para aprofundamento Material para Casa Obs.: o autor já anunciou a segunda edição, aguardem...
  105. 105. Material parapara Casa Material aprofundamento
  106. 106. Material para para Casa aprofundamento Material
  107. 107. Material para aprofundamento Material para Casa
  108. 108. Material para Casa Material para aprofundamento Web Scraping http://pyvideo.org/video/609/web-scrapingreliably-and-efficiently-pull-data
  109. 109. Material para Casa Python para Zumbis (gratuito) http://pycursos.com/python-para-zumbis
  110. 110. 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

×