13 de nov. de 2012

Criando um Webcrawler em Python

7 comentários
     Os webcrawlers são processos automatizados para busca ou manutenção de sites (checar links e validação do código). Através dos crawlers temos os mecanismos de buscas do Google e Altavista!! Eles interagem com o ambiente através do uso de protocolos HTTP, SMTP, RSS, etc. O Googlebot usa o algoritmo do PageRank para classificar a ordem de importância dos sites. 
    Exitem questões legais para o uso de crawlers, por isso respeite as regras do robots.txt e suas políticas de cortesia.
     Os webcrawlers se identificam no servidor pelo User-Agent http header. Podemos ver esses dados usando o urllib2:

import urllib2
url = raw_input('url: ')
if 'http' not in url:
 url = 'http://'+url
resposta = urllib2.urlopen(url)
html = resposta.read()
print html.split('\n')[0]
print resposta.info()

    Agora vamos aos exemplos!! Para testar os códigos abaixo, é preciso instalar a biblioteca BeautifulSoup e o Requests: 
$ apt-get install python-bs4
$ easy_install beautifulsoup4
ou
$ pip install beautifulsoup4

$ pip install requests
ou
$ easy_install requests 

25 de out. de 2012

Testes Funcionais - Selenium WebDriver

2 comentários
     O Selenium é uma ferramenta para automatização do navegador (playback e scripting), usado para testar aplicações web.  No Django 1.4 temos o LiveServerTestCase para testar o servidor, facilitando a integração de testes do Django com o Selenium.
    O WebDriver são as ações do navegador através da API (no Django é usado a linguagem Python). Ele suporta diferentes navegadores: Firefox, Chrome, IE. Suas funções são: pegar a página, os elementos, adicionar um input e manipular esses elementos.

Instalação:
# pip install selenium
ou
# easy_install selenium

Buscando elementos:
driver.find_element_by_id('id_usuario') 
driver.find_element_by_name('zeldani')
driver.find_element_by_xpath('//input')
driver.find_element_by_link_text('Proximo')
driver.find_element_by_partial_link_text('Prox')
driver.find_element_by_tag_name('frame')
driver.find_element_by_class_name('body')
driver.find_element_by_css_selector('input') 

1 de out. de 2012

Django e MySQL

0 comentários
    O Django é um framework feito em Python, segue a arquitetura model-view-controller e foi criado oficialmente em 2005 no Kansas, sob a licença BSD. Recebeu esse nome em homenagem ao guitarrista de jazz Django Reinhardt.

Instalação:
     Baixe o Django pelo site oficial: https://www.djangoproject.com/download/.

      Descompacte o arquivo com o comando:  
$ tar -zxvf Django-1.4.1.tar.gz

       Acesse o diretório e instale:
$ cd cd Django-1.4.1/
$ sudo python setup.py install


20 de set. de 2012

Zen of CherryPy

0 comentários
     O CherryPy é um framework gratuito e open source criado por Rémi Delon (2002), voltado para o desenvolvimento de aplicações web, utilizando a linguagem Python. Suas aplicações costumam ser bastante simples, onde o servidor não necessita de customizações extensivas, bastando ter o interpretador Python instalado.
  • Instalação:
     Faça o download da versão atualizada pelo repositório do souce forge.
     Descompacte o arquivo com o comando:
# tar zxvf CherryPy-2.2.1.tar.gz

     Acesse o diretório criado: # cd CherryPy-2.2.1
     Instale o framework: # python setup.py install

9 de set. de 2012

Dicas Python - Criptografia

0 comentários

     As codificações em base são usadas para guardar ou transferir dados que são restritos do US-ASCII  (caracteres baseados no alfabeto inglês - códigos de 0 à 31, 127 em decimal não podem ser impressos).

19 de ago. de 2012

Python - Classes

0 comentários
- Programação orientada a objetos:
    É uma disciplina da programação que busca unificar a idéia de algoritmos (sequências de instruções) e estrutura de dados através do conceito de Objeto (unidade de software que encapsula os algoritmos e os dados que ele atua).
     Alguns conceitos importantes da OOP:
- Poliformismo: permite que dois objetos diferentes possam ser usados de maneira parecida. 
- Abstração ou Encapsulamento: é o que permite que um objeto seja utilizado sabendo apenas sua interface, não sendo necessário saber sobre a implementação dos métodos.
- Herança: é o que permite construir objetos que são as especializações de outros objetos. 

- Objetos em Python:
     
       A linguagem Python suporta orientação à objetos através de classes.
    - Classes: pode ser definida como uma fábrica de objetos, todos com as mesmas características. 
    - Instâncias: concretização de uma classe. 
      As principais entidades da oop do python são as classes e as instâncias da classe. Observe a figura ao lado. A fabrica representa as classes e os ursinhos as instâncias das suas respectivas classes. Os atributos das classes são as estruturas particulares de cada instância como a cor ou pata.

    15 de ago. de 2012

    Python - Usando o módulo threading

    1 comentários

    Definição de Thread:
         Thread = Linha ou encadeamento de execução, é uma forma de processo que se divide em duas ou mais vezes para executar uma tarefa. Ex: em um jogo um thread pode executar os gráficos e outro o aúdio, onde o usuário percebe sua execução simultanea em tempo real. Um dos seus benefícios é que se um thread ficar parado (em estado de bloqueio) à espera de algum dispositivo de entrada/saída, um outro thread que estava na fila de espera entra em execução.
         Um thread não é um programa, mas executa dentro do programa. É possível executar vários threads em um único programa (multithread):

    Módulo threading:
         No Python, o módulo nativo para executar os threads é o Thread. Ele é interpretado por sistemas que suportem o posix threads (pthreads). O módulo Threading é uma interface de alto nível para utilização de threads. Esse módulo permite que os thread sejam executados de uma maneira mais fácil.

    27 de jul. de 2012

    Common Lisp

    0 comentários
        Lisp é uma linguagem de programação funcional, inventada por John McCarthy em 1958.  Houve uma época que existiam muitos dialetos Lisp, mas hoje em dia o mais usado é o Common Lisp e o Scheme.
         Common Lisp é uma implementação do Lisp. É uma linguagem funcional (prioriza as funções) e procedural (enfatiza as mudanças de estados do programa), com usos convencionais e na IA. Foi criada por Guy L. Steele  nos anos 80 com a finalidade de combinar os diversos dialetos Lisp e torná-los compatíveis. 
        O Lisp tem uma sintaxe simples, clara e simétrica. Ele usa parênteses para organizar os códigos numa lista!!

    • Instalando o CLisp:
     O CLisp é uma implementação do Common Lisp criada por Bruno Haible.  Para instalar o CLisp você pode fazer o download no site http://www.clisp.org/ ou usar o comando apt-get install clisp.