Slides em HTML5: http://fgmacedo.github.io/talks/pybr9_raspador
Palestra apresentada na PythonBrasil[9], em Brasília.
Com aproximadamente 500 linhas de código (+testes), o raspador é uma mini-biblioteca para extração de dados em fontes semi-estruturadas. Está em produção utilizado como fundamento para extração de dados em Espelhos MFD de impressoras fiscais.
A definição dos extratores é feita através de classes como modelos, de forma semelhante ao ORM do Django. Cada extrator procura por um padrão especificado por expressão regular, e a conversão para tipos primitidos é feita automaticamente a partir dos grupos capturados.
O analisador é implementado como um gerador, onde cada item encontrado pode ser consumido antes do final da análise, caracterizando uma pipeline.
A análise é foward-only, o que o torna extremamente rápido, e deste modo qualquer iterador que retorne uma string pode ser analisado, incluindo streams infinitos.
Com uma base sólida e enxuta, é fácil construir seus próprios extratores.
Além da utilidade da ferramenta, o raspador é um exemplo prático e simples da utilização de conceitos e recursos como iteradores, geradores, meta-programação e property-descriptors.
http://2013.pythonbrasil.org.br/program/pb/other/raspador-uma-mini-biblioteca-tupiniquim-para-extracao-de-dados
Tornado mais do que um framework bonitinhoMarcel Nicolay
Palestra feita no Mutirão PyCursos 2013, ela tem como objetivo introduzir os aspectos do non-blocking I/O aplicados ao desenvolvimento web e mostrar como o Tornado pode lhe ajudar a construir soluções mais completas.
O Tornado é um framework web non-blocking escrito para lidar com milhares de conexões simultâneas. Iremos conhecer as camadas mais baixas do framework (ioloop, iostream, stack_context, gen, timers, ...) entender como elas funcionam e como podemos utilizá-las.
Getna: Gerador de Código RubyOnRails apartir de banco de dadosMaximusmano
Minha proposta era fazer um projeto Open Source de um Gerador Rails que apartir de um Banco de dados gera-se toda a estrutura inicial de um Projeto Rails
Tornado mais do que um framework bonitinhoMarcel Nicolay
Palestra feita no Mutirão PyCursos 2013, ela tem como objetivo introduzir os aspectos do non-blocking I/O aplicados ao desenvolvimento web e mostrar como o Tornado pode lhe ajudar a construir soluções mais completas.
O Tornado é um framework web non-blocking escrito para lidar com milhares de conexões simultâneas. Iremos conhecer as camadas mais baixas do framework (ioloop, iostream, stack_context, gen, timers, ...) entender como elas funcionam e como podemos utilizá-las.
Getna: Gerador de Código RubyOnRails apartir de banco de dadosMaximusmano
Minha proposta era fazer um projeto Open Source de um Gerador Rails que apartir de um Banco de dados gera-se toda a estrutura inicial de um Projeto Rails
Desenvolvendo web crawler/scraper com PythonRoselma Mendes
Fala um pouco de algumas bibliotecas em Python para o desenvolvimento de um web crawler ou scraper.
------
Cover some Python libraries for development of web crawler or scraper.
Resolvendo problemas de performance em aplicações Delphi e bancos de dadosAndreano Lanusse
Encontrar as causas dos problemas de desempenho em aplicações e banco de dados consome muito tempo e não é uma tarefa simples. Durante esta apresentação através de um cenário real vamos conhecer como a integração entre ER/Studio, RAD Studio e DB Optimizer nos pode ajudar a localizar e resolver os problemas no código, SQL e banco de dados.
A nova arquitetura do DataSnap permite disponibilizar regras de negócios através de Server Methods, esta arquitetura facilita a integração com frameworks de testes, com isso podemos automatizar os testes a cada nova versão dos servidores DataSnap, durante esta apresentação vamos aprender como implementar testes em projetos DataSnap.
Hoje em dia é possível extrair informações importantes a partir dos dados que as pessoas compartilham na internet. De posse dessas informações as possibilidades são infinitas: podemos saber onde as pessoas costumam ir, sua personalidade ou qual propaganda é mais adequada para ela. A coleta de dados é um passo importante para a extração de informações e possui diversas técnicas. Nesta palestra serão exibidas algumas técnicas para coleta de dados com o Python em sites como Marvel, Twitter e Foursquare.
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Kelver Merlotti
Palestra apresentada no Embarcadero Conference 2015: "Você já deve ter ouvido falar bastante do Datasnap e da sua praticidade para desenvolver, certo? Mas você já o explorou de verdade? Pois esta apresentação vai lhe dar o caminho das pedras para desvendar recursos como Autenticação, Autorização, Criptografia, Compactação, Callback, Cache, Paginação e muito mais!"
Exemplos em: https://github.com/kmerlotti/DatasnapAvancado
Atualmente as ferramentas de busca são tratadas como deidades do ciberespaço, detentoras e difusoras de todo o conhecimento, em sua maioria oferecidos por grandes companhias como o Google, Yahoo e Microsoft.
Cujos sistemas são essencialmente fechados, resultando em uma tecnologia de indexação e classificação deveras nebulosa aos usuários deste serviço.
Capturando dados com Python - UAI PythonÁlvaro Justen
Dada a imensa quantidade de informação disponível na Web de forma distribuída e não padronizada, é comum a necessidade de capturar, converter e normalizar esses dados antes de começar o trabalho
desejado em cima deles. Esse processo tira o foco inicial do projeto e pode ser bastante trabalhoso.
Nessa palestra apresentarei ferramentas escritas em Python que envolvem todo o processo descrito acima, visando facilitar e otimizar esse tipo de tarefa.
Slides da palestra ministrada no UAI Python em 29 de agosto de 2015.
Versão interativa dos slides: http://turicas.info/slides/brasil.io/uaipython/
Quando se trata de Ciência de Dados, uma pergunta sempre vem à tona: R ou Python para análise de dados? Apesar de existirem muitas outras possibilidades, estas duas linguagens tem polarizado as discussões sobre que ferramenta utilizar para análise.
Quer você saiba ou não, seu negócio já faz parte do mercado de dados e informações. Enquanto nossas vidas continuam migrando para a internet, produzimos um fluxo constante e exaustivo de informação digital.
Desenvolvendo web crawler/scraper com PythonRoselma Mendes
Fala um pouco de algumas bibliotecas em Python para o desenvolvimento de um web crawler ou scraper.
------
Cover some Python libraries for development of web crawler or scraper.
Resolvendo problemas de performance em aplicações Delphi e bancos de dadosAndreano Lanusse
Encontrar as causas dos problemas de desempenho em aplicações e banco de dados consome muito tempo e não é uma tarefa simples. Durante esta apresentação através de um cenário real vamos conhecer como a integração entre ER/Studio, RAD Studio e DB Optimizer nos pode ajudar a localizar e resolver os problemas no código, SQL e banco de dados.
A nova arquitetura do DataSnap permite disponibilizar regras de negócios através de Server Methods, esta arquitetura facilita a integração com frameworks de testes, com isso podemos automatizar os testes a cada nova versão dos servidores DataSnap, durante esta apresentação vamos aprender como implementar testes em projetos DataSnap.
Hoje em dia é possível extrair informações importantes a partir dos dados que as pessoas compartilham na internet. De posse dessas informações as possibilidades são infinitas: podemos saber onde as pessoas costumam ir, sua personalidade ou qual propaganda é mais adequada para ela. A coleta de dados é um passo importante para a extração de informações e possui diversas técnicas. Nesta palestra serão exibidas algumas técnicas para coleta de dados com o Python em sites como Marvel, Twitter e Foursquare.
Datasnap avançado - Respostas para um sistema robusto - Embarcadero Conferenc...Kelver Merlotti
Palestra apresentada no Embarcadero Conference 2015: "Você já deve ter ouvido falar bastante do Datasnap e da sua praticidade para desenvolver, certo? Mas você já o explorou de verdade? Pois esta apresentação vai lhe dar o caminho das pedras para desvendar recursos como Autenticação, Autorização, Criptografia, Compactação, Callback, Cache, Paginação e muito mais!"
Exemplos em: https://github.com/kmerlotti/DatasnapAvancado
Atualmente as ferramentas de busca são tratadas como deidades do ciberespaço, detentoras e difusoras de todo o conhecimento, em sua maioria oferecidos por grandes companhias como o Google, Yahoo e Microsoft.
Cujos sistemas são essencialmente fechados, resultando em uma tecnologia de indexação e classificação deveras nebulosa aos usuários deste serviço.
Capturando dados com Python - UAI PythonÁlvaro Justen
Dada a imensa quantidade de informação disponível na Web de forma distribuída e não padronizada, é comum a necessidade de capturar, converter e normalizar esses dados antes de começar o trabalho
desejado em cima deles. Esse processo tira o foco inicial do projeto e pode ser bastante trabalhoso.
Nessa palestra apresentarei ferramentas escritas em Python que envolvem todo o processo descrito acima, visando facilitar e otimizar esse tipo de tarefa.
Slides da palestra ministrada no UAI Python em 29 de agosto de 2015.
Versão interativa dos slides: http://turicas.info/slides/brasil.io/uaipython/
Quando se trata de Ciência de Dados, uma pergunta sempre vem à tona: R ou Python para análise de dados? Apesar de existirem muitas outras possibilidades, estas duas linguagens tem polarizado as discussões sobre que ferramenta utilizar para análise.
Quer você saiba ou não, seu negócio já faz parte do mercado de dados e informações. Enquanto nossas vidas continuam migrando para a internet, produzimos um fluxo constante e exaustivo de informação digital.
Aqui está uma apresentação de aproximadamente 50 minutos (podendo ser facilmente estendida para 2 ou 4 horas) sobre princípios de lógica de programação. Nível de graduação.
PHP na Tela Escura: Aplicações Poderosas em Linha de ComandoRafael Jaques
A linguagem PHP é conhecida por ser utilizada no desenvolvimento de aplicações web. Essa palestra visa apresentar o outro lado do desenvolvimento. Poucos sabem que é possível utilizar a linguagem para desenvolver tarefas agendadas, ferramentas multi-thread e diversas outras aplicações que rodam em terminal. Nessa palestra exploraremos o mundo do PHP-CLI.
Palestra de Rafael Jaques (@rafajaques)
Programação Reativa e Funcional e extensões para PHPJuliana Chahoud
Slides da palestra https://joind.in/event/darkmira-tour-php-2017/programao-reativa-funcional-e-extenses-para-php efetuada no #darkmiraTour 2017
Descrição:
Currying? Observables? Map, Reduce? Aprenda as ideias por trás da programação reativa funcional sem ficar perdido com tantos jargões! Além desses principais conceitos, serão demonstrados alguns exemplos de uso de RxPHP, um conjunto de bibliotecas com extensões reativas para PHP.
Mais info sobre o evento:
https://php.darkmiratour.rocks/2017/team/juliana-chahoud/
https://php.darkmiratour.rocks/2017/palestras/
Semelhante a Raspador: Biblioteca em Python para extração de dados em texto semi-estruturado (20)
10. PLAIN PYTHON + REGEX
Fácil de escrever
Difícil de manter
Write only code
11. O que faz?
rs=[
e
]
frlnai etaasltie(:
o ih n nrd.pilns)
i ntlna
f o ih:
cniu
otne
ie ={
tm
}
frprei lnaslt)
o at n ih.pi(:
k v=preslt''
,
at.pi(:)
ie[]=v
tmk
rsapn(tm
e.pedie)
Você entende o código, mas não tem significado.
12. REGULAR EXPRESSIONS
Some people, when confronted with a problem,
think "I know, I'll use regular expressions." Now
they have two problems. (Jamie Zawinski, 1997)
13. I [:
n ]
#Oqeis fz
u so a?
rgx="((!$&*/?_{}]|[#%'+-=^
ee
^([#%'+-=^`|~w)(!$&*/?_
`|~w[#%'+-=^`|~.w{,[#%'+-=^`
{}]!$&*/?_{}]0}!$&*/?_{
|~w)[]w(-]w)+[.+*$
}])@+[.+*.w(-]w))"
Email validation - RFC 2821, 2822 compliant
16. pessoa_parser.py
fo rsao ipr Pre
rm apdr mot asr
fo rsao ipr SrnFed Itgril
rm apdr mot tigil, neeFed
casPreDIfraosesasPre)
ls asrenomcePsoi(asr:
Nm =SrnFedrNm:(*'
oe
tigil('oe .))
Iae=Itgril('+ ao'
dd
neeFedr(d) ns)
A definição de um atributo e o tipo de dado agregam semântica
17. pessoa.txt
Nome: Guido van Rossum
Guido van Rossum é um programador de
computadores dos Países Baixos que é mais
conhecido por ser o autor da linguagem de
programação Python. Wikipédia
Nascimento: 31 de janeiro de 1956 (57 anos),
Países Baixos
Cônjuge: Kim Knapp (desde 2000)
Educação: Universidade de Amsterdã (1982)
Filho: Orlijn Michiel Knapp-van Rossum
Irmão: Just van Rossum
18. pessoa_utilizacao.py
fo pso_asripr PreDIfraosesas
rm esapre mot asrenomcePsoi
pre =PreDIfraosesas)
asr
asrenomcePsoi(
wt oe(pso.x' a f
ih pn'esatt) s :
frpso i pre.as()
o esa n asrpref:
pitpso.oe
rn(esaNm)
pitpso.dd)
rn(esaIae
Guido van Rossum
57
19. #pre.as rtrau gnrtr
asrpre eon m eeao
wt oe(pso.x' a f
ih pn'esatt) s :
g=pre.as()
asrpref
pittp()
rn(yeg)
pitnx()
rn(etg)
<ye'eeao'
tp gnrtr>
Dcinr((Nm' 'ud vn
itoay['oe, Gio a
Rsu',(Iae,5))
osm) 'dd' 7]
20. RASPADOR.ITEM
casDcinr(reeDc)
ls itoayOdrdit:
""
"
Dcinr ta epssky a poete fr
itoay ht xoe es s rpris o
es ra acs.
ay ed ces
""
"
df_gttr_sl,nm)
e _eat_(ef ae:
i nm i sl:
f ae n ef
rtr sl[ae
eun efnm]
rieAtiuero(
as trbtErr
"swtotat 's"%
% ihu tr %'
(yesl)_nm_,nm)
tp(ef._ae_ ae)
21. CAMPOS BUILT-IN
fo rsao ipr (
rm apdr mot
BsFed Itgril,
aeil, neeFed
SrnFed Boenil,
tigil, olaFed
Fotil,BFotil,
laFed RlaFed
DtFed DtTmFed
aeil, aeieil)
TODO: B F o t i l , definir sistema de localização.
RlaFed
27. NEM TUDO QUE É TEXTO
... está em texto
pdftotext
Dica:
pfoet-aot<ruv.d>
dttx lyu aqiopf
Mantém a estrutura do arquivo gerado próxima com o original.
30. TESTES
Testes automatizados com tox.
$tx
o
Bibliotecas de terceiros para os testes são instaladas
automaticamente no ambiente virtual da versão do Python:
ns=130
oe=..
cvrg=36
oeae=.
fae=20
lk8=.