Profile

rennerocha @rennerocha


About Me

-

Events

1º Encontro Grupy-Campinas - 2020 - Dextra

Com muito prazer que anunciamos o nosso primeiro encontro de 2020. Dessa vez nos encontraremos na DEXTRA! Vamos participar?

O encontro será no dia 15/02 das 9h às 12h.

Essa é sua oportunidade para apresentar uma palestra. Submeta sua palestra! Apresentações devem ser de 25 minutos, com mais 5 minutos para perguntas.

Qualquer tema relacionado ao ecossistema Python é adequado!

 

Proposals

Desenvolvendo webcrawlers utilizando Scrapy




Para fazer qualquer tipo de análise de dados é necessário primeiro encontrar e depois extrair esses dados de maneira estruturada. Uma das principais fontes de dados que utilizamos são conteúdos obtidos de páginas web que normalmente não estão organizados de maneira adequada para nossa utilização. Obter e organizar manualmente toda esse informação é uma tarefa impossível!

Nesse tutorial os participantes irão conhecer o Scrapy, framework especializado para desenvolvimento de webcrawlers, desenvolvendo Spiders enfrentando cenários e problemas mais comuns e maneiras de solucioná-los.

Conteúdo Resumido:
- Conceitos básicos de raspagem de dados;
- Arquitetura básica do Scrapy (meu primeiro Spider!);
- Como extrair informações de uma página (seletores XPath e CSS);
- Navegando por uma página sem um navegador;
- Lidando com páginas com JavaScript;
- Boas práticas e evitando ser banido;
- Rodando seus Spiders em produção.

Sobre:
- Duração: 4 horas.
- Configurações de ambiente: Python 3 + Scrapy instalado
- Pré-requisitos: HTML/CSS básico e Python

Extraindo dados da internet usando Scrapy

Nesta palestra irei apresentar as principais características do Scrapy (http://scrapy.readthedocs.io/), um framework open-source que facilita o desenvolvimento de aplicações para navegação e extração de dados estruturados em páginas web, através de exemplos práticos de situações reais que podem ser encontradas (como por exemplo páginas com grande uso de Javascript), além de dicas aprendidas no meu tempo desenvolvendo esse tipo de aplicação.

Introdução ao XPath: Navegando (e extraindo dados) de documentos HTML

O XPath é uma linguagem de consulta que nos ajuda a navegar por documentos como os arquivos XML e HTML. Nesses documentos as informaçõẽs ficam agrupadas em nós (<html></html>, <p></p>, <a></a>, etc) em uma hierarquia que pode ser visualizada como uma árvore. A primeira vista, o XPath parece muito complicado ("//*[text()][not(re:test(name(), "^script|style$"))]"???), mas é uma ferramenta muito poderosa para extrair informações desses tipos de documentos.

Conhecer essa linguagem e como navegar em um documento HTML é uma habilidade muito útil para quem está desenvolvendo webcrawlers, já que ela permite extrair dados mesmo de páginas não tão bem estruturadas. Nessa palestra, irei apresentar o básico do XPath, e como utilizar bibliotecas Python para navegar por arquivos HTML e conseguir a informação que você deseja.

Introdução ao XPath: Navegando (e extraindo dados) de documentos HTML

O XPath é uma linguagem de consulta que nos ajuda a navegar por documentos como os arquivos XML e HTML. Nesses documentos as informaçõẽs ficam agrupadas em nós (<html></html>, <p></p>, <a></a>, etc) em uma hierarquia que pode ser visualizada como uma árvore. A primeira vista, o XPath parece muito complicado ("//*[text()][not(re:test(name(), "^script|style$"))]"???), mas é uma ferramenta muito poderosa para extrair informações desses tipos de documentos.

Conhecer essa linguagem e como navegar em um documento HTML é uma habilidade muito útil para quem está desenvolvendo webcrawlers, já que ela permite extrair dados mesmo de páginas não tão bem estruturadas. Nessa palestra, irei apresentar o básico do XPath, e como utilizar bibliotecas Python para navegar por arquivos HTML e conseguir a informação que você deseja.

Introdução ao XPath: Navegando (e extraindo dados) de documentos HTML

O XPath é uma linguagem de consulta que nos ajuda a navegar por documentos como os arquivos XML e HTML. Nesses documentos as informaçõẽs ficam agrupadas em nós (<html></html>, <p></p>, <a></a>, etc) em uma hierarquia que pode ser visualizada como uma árvore. A primeira vista, o XPath parece muito complicado mas é uma ferramenta muito poderosa para encontrar e extrair informações desses tipos de documentos.


Conhecer essa linguagem e como navegar em um documento HTML é uma habilidade muito útil para quem está desenvolvendo web crawlers, já que ela permite extrair dados mesmo de páginas não tão bem estruturadas. Outra aplicação comum é no desenvolvimento de testes automatizados (como por exemplo usando Selenium) para encontrar elementos nas telas.


Nessa palestra, irei apresentar conceitos básicos do XPath, e como utilizar bibliotecas Python para navegar por arquivos HTML e conseguir a informação que você deseja.


Tópicos abordados:
- Estrutura de um documento XML (e HTML)
- Aplicações do uso do XPath
- Exemplos de seletores básicos
- Navegação por eixos
- Bibliotecas Python que podem ser utilizadas


Público-alvo:
Desenvolvedores, testadores e qualquer pessoa com conhecimentos básicos de programação que desenvolva, mantenha ou tenha interesse na utilização de web crawlers ou automação de testes.

Introdução a raspagem de dados com Scrapy

Resumo:


Um passo fundamental de qualquer projeto de análise de dados, é a obtenção destes dados e sua estruturação de modo que eles possam ser utilizados mais facilmente por um cientista de dados (ou profissional equivalente). Uma das principais fontes desses dados são páginas da Internet que normalmente não estão organizadas e estruturadas de maneira adequada para nossa utilização.


Obter e organizar manualmente toda essa informação é uma tarefa impossível, por isso aprender a utilizar uma ferramenta como o Scrapy, um framework desenvolvido especialmente para extração de dados, é fundamental para quem deseja trabalhar nessa área.

Os participantes vão aprender nesse tutorial: 


O básico para o desenvolvimento de web crawlers simples de maneira.


Método:


Esse é um tutorial mão-na-massa. Após uma breve explicação dos conceitos básicos de raspagem de dados e de Scrapy, os participantes terão até 4 exercícios para resolver individualmente (mas a interação entre os participantes será encorajada), com nível de dificuldade crescente. Os dois primeiros exercícios serão resolvidos com certeza (pois são aplicação dos conceitos básicos do Scrapy), sendo que os dois restantes serão resolvidos dependendo do ritmo dos participantes (mas serão apresentados de qualquer maneira).


Pré-requisitos: 


Conhecimentos básicos de Python e HTML/CSS.


Tópicos que serão abordados:


- Conceitos básicos de raspagem de dados;
- Arquitetura básica do Scrapy (meu primeiro Spider!);
- Como extrair informações de uma página (seletores XPath e CSS);
- Navegando por uma página sem um navegador;
- Lidando com páginas com JavaScript;
- Boas práticas e evitando ser banido;
- Rodando seus Spiders em produção.

Testando e monitorando web crawlers

Testes são fundamentais para qualquer software. Eles nos auxiliam durante o desenvolvimento inicial (validando o nosso design), na adição de novas funcionalidades (garantindo que nenhuma outra deixe de funcionar) e na correção de bugs (para evitar que eles não ocorram novamente).


Web crawlers são programas que navegam por páginas da internet e extraem informações estruturadas a partir delas e, como qualquer software, também devem ter seu código testado.


A maior dificuldade que encontramos ao escrever testes para um web crawler é que a maior parte do código depende inteiramente de entradas cujo conteúdo não temos nenhum controle (e que podem se modificar sem nenhum aviso a qualquer momento) tornando os testes muito frágeis e com a possibilidade de quebrarem facilmente (e dependendo da maneira como eles forem escritos, não nos avisando de erros existentes).


Nessa palestra irei discutir um pouco esse problema, apresentando algumas soluções existentes e possibilidades para garantirmos que qualquer problema em nosso web crawler seja identificado o mais rapidamente possível. O framework Scrapy e a extensão Spidermon serão utilizados nos exemplos, mas os conceitos podem ser usados para web crawlers desenvolvidos com qualquer outra tecnologia.


Tópicos abordados:
- Conceitos básicos de web crawling
- Tipos de testes possíveis e suas limitações
- Validação de resultados com esquemas de dados (JSON schema, schematics, etc)
- Monitoramento constante e notificações


Público-alvo: desenvolvedores, cientistas de dados ou qualquer pessoa (com conhecimentos básicos de programação) que desenvolva, mantenha ou tenha interesse na utilização de web crawlers.