Links da Semana

Links da Semana #4

Conteúdo do Post

Olá pessoal,

Essa semana tem alguns links bem interessantes, voltado para o desenvolvimento com Python.

Yagmail: Um client para Gmail

A proposta desse projeto é facilitar o uso do Gmail como servidor de envio dos e-mails da sua aplicação. Suportando desde Python 2 a 3, ele possui uma API bem simplificada, podendo enviar e-mails nos formatos Plain Text a HTML. Segue um exemplo da documentação:

import yagmail
yag = yagmail.SMTP()
contents = ['This is the body, and here is just text <http://somedomain/image.png>',
            'You can find an audio file attached.', '/local/path/song.mp3']
yag.send('[email protected]', 'subject', contents)
yagmail.SMTP('mygmailusername').send('[email protected]', 'subject', 'This is the body')

Furl: Um parser de URLs simplificado

Lidar com parseamentos de URL no Python nunca foi complicado, mas essa lib desafia a ponto de deixar um pouco mais prático. No README do projeto resume a biblioteca assim:

Python’s standard urllib and urlparse modules provide a number of URL related functions, but using these functions to perform common URL operations proves tedious. Furl makes parsing and manipulating URLs easy.

Um exemplo de como ele funciona:

>>> from furl import furl
>>> f = furl('<http://www.google.com/?one=1&two=2>')
>>> f /= 'path'
>>> del f.args['one']
>>> f.args['three'] = '3'
>>> f.url
'<http://www.google.com/path?two=2&three=3>'

Lassie: extraindo conteúdo de páginas web

Quando envolve extração de algum conteúdo em páginas web, acabamos nos lembrando do BeautilfulSoup como também o Scrapy, e essa lib procura ser mais uma opção a ser considerada quando possui esse tipo de problema. Ele acaba coletando e organizando os tipos de dados que uma página web possui de forma bem intuitiva inclusive. Segue um exemplo:

>>> import lassie
>>> lassie.fetch('<http://www.youtube.com/watch?v=dQw4w9WgXcQ>')
{
    'description': u'Music video by Rick Astley performing Never Gonna Give You Up. YouTube view counts pre-VEVO: 2,573,462 (C) 1987 PWL',
    'videos': [{
        'src': u'<http://www.youtube.com/v/dQw4w9WgXcQ?autohide=1&version=3>',
        'height': 480,
        'type': u'application/x-shockwave-flash',
        'width': 640
    }, {
        'src': u'<https://www.youtube.com/embed/dQw4w9WgXcQ>',
        'height': 480,
        'width': 640
    }],
    'title': u'Rick Astley - Never Gonna Give You Up',
    'url': u'<http://www.youtube.com/watch?v=dQw4w9WgXcQ>',
    'keywords': [u'Rick', u'Astley', u'Sony', u'BMG', u'Music', u'UK', u'Pop'],
    'images': [{
        'src': u'<http://i1.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg?feature=og>',
        'type': u'og:image'
    }, {
        'src': u'<http://i1.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg>',
        'type': u'twitter:image'
    }, {
        'src': u'<http://s.ytimg.com/yts/img/favicon-vfldLzJxy.ico>',
        'type': u'favicon'
    }, {
        'src': u'<http://s.ytimg.com/yts/img/favicon_32-vflWoMFGx.png>',
        'type': u'favicon'
    }],
    'locale': u'en_US'
}

Python Awesome: coletânia de soluções em Python

Sobre o fato de que o Python é conhecido pelas sua baterias incluídas, todos concordamos, mas por ser uma linguagem de uso geral, sua versatilidade não tem limites. Esse site mostra sobre os mais variados projetos e que talvez encaixe como uma luva diante de algum problema no seu sistema.

Dateparser: tratando variados tipos de data na sua raspagem de dados

O Scrapinghub é famosa pela suas variadas soluções em raspagem de dados, como o Scrapy, seu carro chefe. É comum a medida que vai adquirindo experiência nesse tipo de problema, em criar módulos reutilizáveis para situações comuns como por exemplo: tratar variados formatos de data e hora e converter para o tipo datetime do Python, e é exatamente o que esse projeto se propõem. Segue um exemplo:

>>> import dateparser

>>> dateparser.parse('Fri, 12 Dec 2014 10:55:50')
datetime.datetime(2014, 12, 12, 10, 55, 50)

>>> dateparser.parse('1991-05-17')
datetime.datetime(1991, 5, 17, 0, 0)

>>> dateparser.parse('In two months')  # today is 1st Aug 2020
datetime.datetime(2020, 10, 1, 11, 12, 27, 764201)

>>> dateparser.parse('1484823450')  # timestamp
datetime.datetime(2017, 1, 19, 10, 57, 30)

>>> dateparser.parse('January 12, 2012 10:00 PM EST')
datetime.datetime(2012, 1, 12, 22, 0, tzinfo=<StaticTzInfo 'EST'>)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *