• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Automatizando tarefas com Python
 

Automatizando tarefas com Python

on

  • 2,261 views

 

Statistics

Views

Total Views
2,261
Views on SlideShare
1,104
Embed Views
1,157

Actions

Likes
1
Downloads
7
Comments
0

2 Embeds 1,157

http://pugpe.wordpress.com 1156
https://pugpe.wordpress.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Automatizando tarefas com Python Automatizando tarefas com Python Presentation Transcript

    • Lightning TalkUsing Python to Automate Repetitive TasksAndré EricsonNovembro/2011, Pug-Pe
    • Using Python to AutomateRepetitive TasksRoteiro • Por que py? • Case of Study 1 • Motivação • Objetivos • Ferramentas • Case of Study 2 • Motivação • Objetivos • Resultados • Ferramentas • Code • Bonus
    • Por que Python? • Simplicidade • Legibilidade do Código • Tempo • Batteries Included • PyPI(17484 packages)
    • Por que Python? • Simplicidade • Legibilidade do Código • Tempo • Batteries Included • PyPI(17484 packages) • Não é Java
    • Case of Study: Unicap_br
    • Motivação
    • Unicap-brObjetivos • Fazer o login no site da católica • Receber dados dos livros emprestados • Renovar livros • Checar sucesso da renovação • Renovar automaticamente com frequência Crontab
    • Unicap-brObjetivos • Fazer o login no site da católica • Receber dados dos livros emprestados • Renovar livros • Checar sucesso da renovação • Renovar automaticamente com frequência Crontab
    • Unicap-brObjetivos • Fazer o login no site da católica • Receber dados dos livros emprestados • Renovar livros • Checar sucesso da renovação • Renovar automaticamente com frequência Crontab
    • Unicap-brObjetivos • Fazer o login no site da católica • Receber dados dos livros emprestados • Renovar livros • Checar sucesso da renovação • Renovar automaticamente com frequência Crontab
    • Unicap-brObjetivos • Fazer o login no site da católica • Receber dados dos livros emprestados • Renovar livros • Checar sucesso da renovação • Renovar automaticamente com frequência Crontab
    • Unicap-brFerramentas • BeautifulSoup: HTML/XML parser designed for quick turnaround projects like screen-scraping • Mechanize: Stateful programmatic web browsing in Python
    • Unicap-brFerramentas • BeautifulSoup: HTML/XML parser designed for quick turnaround projects like screen-scraping • Mechanize: Stateful programmatic web browsing in Python
    • Case of Study: CheckSubs
    • Motivação
    • Objetivo • Checar legendas novas para determinadas séries de TV • Notificar quando uma nova legenda estiver disponível.
    • Objetivo • Checar legendas novas para determinadas séries de TV • Notificar quando uma nova legenda estiver disponível.
    • Resultado
    • Ferramentas • Python-twitter: A Python wrapper around the Twitter API • bitlyapi: A very thin wrapper for the bit.ly API • pynotify: Python bindings for libnotify(Desktop Notification Library) • feedparser: Parse Atom and RSS feeds in Python
    • Ferramentas • Python-twitter: A Python wrapper around the Twitter API • bitlyapi: A very thin wrapper for the bit.ly API • pynotify: Python bindings for libnotify(Desktop Notification Library) • feedparser: Parse Atom and RSS feeds in Python
    • Ferramentas • Python-twitter: A Python wrapper around the Twitter API • bitlyapi: A very thin wrapper for the bit.ly API • pynotify: Python bindings for libnotify(Desktop Notification Library) • feedparser: Parse Atom and RSS feeds in Python
    • Ferramentas • Python-twitter: A Python wrapper around the Twitter API • bitlyapi: A very thin wrapper for the bit.ly API • pynotify: Python bindings for libnotify(Desktop Notification Library) • feedparser: Parse Atom and RSS feeds in Python
    • Talk is cheap.Show me the Code.
    • BeautifulSoup <tr class=’rel2’> <td nowrap><input type=’checkbox’ name=’check_2’ value=’99236167@#1’> </td> <td nowrap>99236167</td> soup = BeautifulSoup(request) <td nowrap> books = soup.findAll(’tr’, attrs={’class’: Introducao a administracao: re.compile(’rel.*’)}) edicao compacta.</td> return [Book(book) for book in books] <td nowrap>&nbsp;</td> ############################################ <td nowrap>Livros</td> class Book(object): <td nowrap>25/10/2011</td> def __init__(self, soup_tag): <td nowrap>09/11/2011</td> tds = soup_tag.findAll(’td’) <td nowrap>&nbsp;</td> self.check = str(tds[0].find(’input’) <td nowrap>&nbsp;</td> [’name’]) <td nowrap>Normal</td> self.title = tds[2].string.strip() <td nowrap>Biblioteca Central</td> <td nowrap>0</td> <td nowrap>15</td> </tr>
    • Mechanize browser = mechanize.Browser() cj = cookielib.LWPCookieJar() <form ... name="form1" ... > browser.set_cookiejar(cj) <input type="text" name="login"> browser.open(LOGIN_PAGE) <input type=’password’ name=’password’> browser.select_form(name=’form1’) </form> browser.form[’login’] = login browser.form[’password’] = password r = browser.submit()
    • Android(SL4A)
    • Android(SL4A)
    • Tasker
    • Dúvidas? André Ericson http://www.github.com/aericson de.ericson@gmail.com @_aericson