SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Web ScrapingWeb Scraping: coletando dados como um artesão: coletando dados como um artesão
Prof. Alex Dias Camargo
alexcamargo@ifsul.edu.br
UNIVERSIDADE FEDERAL DE PELOTAS
CAMPUS ANGLO
SACOMP 2019
MINICURSOS
2
I. Agenda
Este minicurso está organizado da seguinte maneira:
 Apresentação
 Objetivos
 Componentes de uma página web
 O que é Web scraping?
 Ferramentas e códigos
 Scraping na prática: Wikipédia
 Exercícios: ufpel.edu.br
 Bônus: web scraping completo em 4 minutos (GUI mode)
 Onde estudar
 Agradecimentos
 Referências
SACOMP - 2019
3
II. Apresentação
Formação acadêmica:
 Bacharel em Sistemas de Informação (URCAMP, 2011)
TCC: Web sistema integrado a uma rede social para
academias de ginástica
Orientador: Prof. Abner Guedes
 Especialista em Sistemas Distribuídos com Ênfase em
Banco de Dados (UNIPAMPA, 2013)
TCC: Interligando bases de dados do sistema Controle de
Marcas e Sinais utilizando o MySQL Cluster
Orientador: Prof. Érico Amaral
Coorientador: Prof. Rafael Bastos (IDEAU)
TCHELINUX - 2019
4
II. Apresentação
Formação acadêmica:
 Mestre em Engenharia de Computação (FURG, 2017)
Dissertação: EN-MUTATE: predição do impacto de mutações
pontuais em proteínas utilizando Ensemble Learning
Orientadora: Profa. Karina Machado
Coorientador: Prof. Adriano Werhli
 Doutorado (iniciado) em Ciência da Computação (UFPEL)
Tese: Em definição
Orientador: Aluno especial
SACOMP - 2019
5
II. Apresentação
Experiência acadêmica:
 Professor (Ensino Técnico)
Local: Capacitar Escola Técnica
Disciplinas: Banco de Dados e Análise de Sistemas
 Professor (Ensino Superior)
Local: Universidade Federal do Pampa - UNIPAMPA
Disciplinas: Algoritmos e Programação, Laboratório
Programação I e Laboratório de Programação II
 Professor (Ensino Básico, Técnico e Tecnológico)
Local: IFSUL Câmpus Bagé
Disciplinas: Programação para Web II, Arquitetura de
Computadores, Qualidade de Software, Desenvolvimento de
Software, Informática (Eng. Agronômica)
SACOMP - 2019
6
II. Apresentação
Projetos acadêmicos:
 Algo+: um portal para o apoio ao ensino de Algoritmos
Universidade: UNIPAMPA
Área: Informática na educação
 Bioinformática Estrutural de Proteínas: modelos,
algoritmos e aplicações biotecnológicas
Universidade: FURG/UFMG/UFPB
Área: Bioinformática
 Unihacker.Club: Programa Universidade Hacker
Universidade: UNIPAMPA
Área: Segurança da informação
SACOMP - 2019
7
II. Apresentação
Periódicos acadêmicos:
 Revisor do periódico ICCEEg (ISSN 2236-0093)
Universidade: FURG
Área: Multidisciplinar
 Revisor do periódico CCEI (ISSN 2356-6635)
Universidade: URCAMP
Área: Multidisciplinar
SACOMP - 2019
8
III. Objetivos
Dentre os objetivos, podem ser destacados:
 Compreender os conceitos e aplicações do Web Scraping.
 Explorar tecnologias no contexto Python/Linux.
 Motivar novos cientistas de dados.
SACOMP - 2019
9
1. Os componentes de uma página web
SACOMP - 2019
10
1. Os componentes de uma página web
Quando uma página na Internet é visitada, o navegador faz
uma solicitação à um servidor web. Essa solicitação é chamada de
GET, pois são recebidos arquivos do servidor.
 HTML: contém o conteúdo principal da página.
 CSS: adiciona estilos para que a página fique customizada.
 JS: arquivos JavaScript adicionam interatividade à página.
 Imagens: formatos de imagem, tais como JPG e PNG.
SACOMP - 2019
11
1. Os componentes de uma página web
SACOMP - 2019
Figura. Camadas do desenvolvimento web.
12
1. Os componentes de uma página web
SACOMP - 2019
Figura. Estrutura básica do HTML5.
13
1. Os componentes de uma página web
SACOMP - 2019
Figura. Arquitetura web padrão.
14
2. O que é Web Scraping?
SACOMP - 2019
15
2. O que é Web Scraping?
Web Scraping é um método de "raspagem" de dados de sites
que usa scripts para obter as informações necessárias, simulando
um comportamento "humano".
 Um uso popular do scraping na web é procurar ofertas online,
como passagens aéreas, shows, etc.
SACOMP - 2019
16
2. O que é Web Scraping?
SACOMP - 2019
Figura. Visão geral de um web scraping.
17
2. Web Scraping
SACOMP - 2019
Figura. Visão geral de um web scraping.
18
2. O que é Web Scraping?
SACOMP - 2019
Figura. Visão geral de um web scraping.
19
2. Web Scraping
SACOMP - 2019
Figura. Web Scraping versus Web Crawling.
20
2. Web Scraping
SACOMP - 2019
Figura. Aplicações do web scraping.
21
2. O que é Web Scraping?
Web Scraping é um método de "raspagem" de dados de sites
que usa scripts para obter as informações necessárias, simulando
um comportamento "humano".
 Um uso popular do scraping na web é procurar ofertas online,
como passagens aéreas, shows, etc.
 Existem empresas especializadas no ramo?
SACOMP - 2019
22
2. O que é Web Scraping?
SACOMP - 2019
Figura. Empresas de web scraping.
23
2. O que é Web Scraping?
SACOMP - 2019
Figura. Empresas de web scraping.
24
2. O que é Web Scraping?
Web Scraping é um método de "raspagem" de dados de sites
que usa scripts para obter as informações necessárias, simulando
um comportamento "humano".
 Um uso popular do scraping na web é procurar ofertas online,
como passagens aéreas, shows, etc.
 Existem empresas especializadas no ramo?
 Uma alternativa para o web scraping é usar uma API, se
houver alguma disponível. Ex.: Twitter, Instagram, Facebook,
etc.
SACOMP - 2019
25
2. O que é Web Scraping?
SACOMP - 2019
Figura. APIs para extração de dados.
26
2. O que é Web Scraping?
SACOMP - 2019
Figura. APIs para extração de dados.
27
2. O que é Web Scraping?
Web Scraping é um método de "raspagem" de dados de sites
que usa scripts para obter as informações necessárias, simulando
um comportamento "humano".
 Um uso popular do scraping na web é procurar ofertas online,
como passagens aéreas, shows, etc.
 Existem empresas especializadas no ramo?
 Uma alternativa para o web scraping é usar uma API, se
houver alguma disponível. Ex.: Twitter, Instagram, Facebook,
etc.
 "Be polite" (seja educado): um scraping pode sobrecarregar
um servidor, principalmente, se o script estiver fazendo uma
grande quantidade de solicitações. Respeite o robots.txt!
SACOMP - 2019
28
2. Web Scraping
SACOMP - 2019
Figura. Muitas requisições "simultâneas".
29
2. Web Scraping
SACOMP - 2019
Figura. Exemplo de um robots.txt.
30
3. Ferramentas e códigos
SACOMP - 2019
31
3. Ferramentas e códigos
KIT DO WEB SCRAPER:
 GitHub do projeto:
https://github.com/alexcamargoweb/python-webscraping
 Linux Mint:
https://linuxmint.com/download.php
 Python 3:
https://www.python.org/downloads/
 Requests:
https://pypi.org/project/requests/
 URLlib:
https://pypi.org/project/urllib3/
 BeautifulSoup:
https://pypi.org/project/beautifulsoup4/
SACOMP - 2019
32
3. Ferramentas e códigos
KIT DO WEB SCRAPER:
 Selenium:
https://pypi.org/project/selenium/
 Firefox geckodriver:
https://github.com/mozilla/geckodriver/releases/
 Selenium IDE (Firefox extension):
https://addons.mozilla.org/pt-BR/firefox/addon/selenium-ide/
SACOMP - 2019
33
3. Ferramentas e códigos
Demonstração...
SACOMP - 2019
Figura. Exemplo de códigos.
Link: https://github.com/alexcamargoweb/python-webscraping
34
4. Scraping na prática: Wikipédia
SACOMP - 2019
35
4. Scraping na prática: Wikipédia
SACOMP - 2019
Figura. Exemplo de código: Lista os presidentes dos EUA.
Link:
https://www.codementor.io/dankhan/web-scrapping-using-python-and-beautifulsoup-o3hxadit4
36
5. Exercícios
SACOMP - 2019
37
5. Exercícios
Tendo como ponto de partida o endereço: http://portal.ufpel.edu.br/
1. Mostre o trecho que exibe o Copyright do portal.
2. Exiba os informes acadêmicos mostrados na página inicial.
3. Exiba uma lista contendo as unidades acadêmicas da UFPEL.
4. Faça uma extração da lista de serviços disponíveis na UFPEL.
5. Armazene o conteúdo da questão anterior no formato "txt".
6. Considerando a mesma lista de serviços crie um arquivo CSV
com o seguinte cabeçalho e conteúdo: Serviço; Link
7. Salve uma captura da tela principal do portal com nome de
"ufpel_website.png"
SACOMP - 2019
38
6. Bônus: Web scraping completo em 4
minutos (GUI mode)
SACOMP - 2019
39
6. Bônus: Web scraping completo em 4
minutos (GUI mode)
Demonstração...
SACOMP - 2019
40
IV. Onde estudar
Se interessou pelo assunto? :)
 Learn Web Scraping with Python from Scratch (15.851 alunos)
https://www.udemy.com/course/web-scraping-python-tutorial/
 Anotações e scripts de web scraping, screen scraping, etc
https://github.com/ferreiraapfernanda/web-scraping
 Curso de Raspagem e Análise de Dados
https://github.com/fmasanori/treinamento
 Python Selenium WebDriver
https://www.youtube.com/playlist?list=PLUY1lsOTtPeJNBuSweX
S9pcSKbP4mr32S
 MITCHELL, Ryan. Web Scraping with Python: Collecting
More Data from the Modern Web. "O'Reilly, Inc.", 2018.
https://www.amazon.com/Web-Scraping-Python-Collecting-Mod
ern/dp/1491910291
SACOMP - 2019
41
Agradecimentos
Obrigado pela sua participação! :)
 Acadêmicos do curso de Engenharia de Computação
 Programa de Educação Tutorial - PET Computação
 Toda honra e glória ao Senhor Jesus!
Abraços, Prof. Alex Dias Camargo
UFPEL – Campus Anglo
05 de Novembro de 2019
SACOMP - 2019
42
Referências básicas
https://likegeeks.com/python-web-scraping/
https://codeburst.io/web-scraping-101-with-python-beautiful-soup-
bb617be1f486
https://imasters.com.br/back-end/aprendendo-sobre-web-scraping-
em-python-utilizando-beautifulsoup
https://goomore.com/blog/web-scraping-python/
https://github.com/REMitchell/python-scraping
https://medium.com/data-hackers/como-fazer-web-scraping-em-pyt
hon-23c9d465a37f
https://gilberttanner.com/blog/introduction-to-web-scraping-with-beautifulsoup
SACOMP - 2019

Mais conteúdo relacionado

Semelhante a Web Scraping com Python: coletando dados como um artesão

"Evolution of Computing, IoT & Cloud Computing"
"Evolution of Computing, IoT & Cloud Computing""Evolution of Computing, IoT & Cloud Computing"
"Evolution of Computing, IoT & Cloud Computing"EUBrasilCloudFORUM .
 
Javascript State of the Union 2015
Javascript State of the Union 2015Javascript State of the Union 2015
Javascript State of the Union 2015Huge
 
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Andre Devecchi
 
O papel do Front-End na UX
O papel do Front-End na UXO papel do Front-End na UX
O papel do Front-End na UXEdu Agni
 
Projeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprendeProjeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprendeAlexandre Grolla
 
PI III - IMPLEMENTACAO DE PROJETOS DE TI
PI III - IMPLEMENTACAO DE PROJETOS DE TIPI III - IMPLEMENTACAO DE PROJETOS DE TI
PI III - IMPLEMENTACAO DE PROJETOS DE TINilo Basílio
 
Revista Programar nº1
Revista Programar nº1Revista Programar nº1
Revista Programar nº1Morgana_Vasc
 
Resolução - prova n1-2014
Resolução -  prova n1-2014Resolução -  prova n1-2014
Resolução - prova n1-2014Carlos Veiga
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na NévoaBruno Oliveira
 
Diretrizes de arquitetura da STI/UFF
Diretrizes de arquitetura da STI/UFFDiretrizes de arquitetura da STI/UFF
Diretrizes de arquitetura da STI/UFFThiago Diogo
 
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...WordCamp Floripa
 
Avaliação da usabilidade e organização e representação da informação do novo ...
Avaliação da usabilidade e organização e representação da informação do novo ...Avaliação da usabilidade e organização e representação da informação do novo ...
Avaliação da usabilidade e organização e representação da informação do novo ...Paulo Sousa
 
Web 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafiosWeb 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafiosMauricio Garcia
 
Proj uml restaurante online
Proj uml restaurante onlineProj uml restaurante online
Proj uml restaurante onlineEvandro Gf
 
Quero ser programador! #comofas?
Quero ser programador! #comofas?Quero ser programador! #comofas?
Quero ser programador! #comofas?Hugo Lopes Tavares
 

Semelhante a Web Scraping com Python: coletando dados como um artesão (20)

"Evolution of Computing, IoT & Cloud Computing"
"Evolution of Computing, IoT & Cloud Computing""Evolution of Computing, IoT & Cloud Computing"
"Evolution of Computing, IoT & Cloud Computing"
 
Javascript State of the Union 2015
Javascript State of the Union 2015Javascript State of the Union 2015
Javascript State of the Union 2015
 
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
Sistema de Ponto Eletrônico Digital: projeto e implementação de hardware e so...
 
O papel do Front-End na UX
O papel do Front-End na UXO papel do Front-End na UX
O papel do Front-End na UX
 
Projeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprendeProjeto de pesquisa sobre web semântica - a web que aprende
Projeto de pesquisa sobre web semântica - a web que aprende
 
Pim iv
Pim ivPim iv
Pim iv
 
Gestão de incidentes e resiliência das infraestruturas críticas de internet
Gestão de incidentes e resiliência das infraestruturas críticas de internetGestão de incidentes e resiliência das infraestruturas críticas de internet
Gestão de incidentes e resiliência das infraestruturas críticas de internet
 
PI III - IMPLEMENTACAO DE PROJETOS DE TI
PI III - IMPLEMENTACAO DE PROJETOS DE TIPI III - IMPLEMENTACAO DE PROJETOS DE TI
PI III - IMPLEMENTACAO DE PROJETOS DE TI
 
Revista Programar nº1
Revista Programar nº1Revista Programar nº1
Revista Programar nº1
 
Resolução - prova n1-2014
Resolução -  prova n1-2014Resolução -  prova n1-2014
Resolução - prova n1-2014
 
Deploy Azure ML Connect
Deploy Azure ML ConnectDeploy Azure ML Connect
Deploy Azure ML Connect
 
Monografia Computação na Névoa
Monografia Computação na NévoaMonografia Computação na Névoa
Monografia Computação na Névoa
 
Diretrizes de arquitetura da STI/UFF
Diretrizes de arquitetura da STI/UFFDiretrizes de arquitetura da STI/UFF
Diretrizes de arquitetura da STI/UFF
 
intercon2006
intercon2006intercon2006
intercon2006
 
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
Vagner Luis Soletti apresenta monitoramento de performance no WordPress: Um e...
 
Pim iv
Pim ivPim iv
Pim iv
 
Avaliação da usabilidade e organização e representação da informação do novo ...
Avaliação da usabilidade e organização e representação da informação do novo ...Avaliação da usabilidade e organização e representação da informação do novo ...
Avaliação da usabilidade e organização e representação da informação do novo ...
 
Web 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafiosWeb 2.0: conceito, tendências e desafios
Web 2.0: conceito, tendências e desafios
 
Proj uml restaurante online
Proj uml restaurante onlineProj uml restaurante online
Proj uml restaurante online
 
Quero ser programador! #comofas?
Quero ser programador! #comofas?Quero ser programador! #comofas?
Quero ser programador! #comofas?
 

Mais de Alex Camargo

Escola Bíblica - Eclesiologia
Escola Bíblica - EclesiologiaEscola Bíblica - Eclesiologia
Escola Bíblica - EclesiologiaAlex Camargo
 
Escola Bíblica - Demonologia
Escola Bíblica - DemonologiaEscola Bíblica - Demonologia
Escola Bíblica - DemonologiaAlex Camargo
 
Python para finanças: explorando dados financeiros
Python para finanças: explorando dados financeirosPython para finanças: explorando dados financeiros
Python para finanças: explorando dados financeirosAlex Camargo
 
A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?Alex Camargo
 
IA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínasIA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínasAlex Camargo
 
Introdução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurançaIntrodução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurançaAlex Camargo
 
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!Alex Camargo
 
Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)Alex Camargo
 
Empatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom SamaritanoEmpatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom SamaritanoAlex Camargo
 
Alta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem praticaAlta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem praticaAlex Camargo
 
Bioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidadeBioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidadeAlex Camargo
 
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mãoInteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mãoAlex Camargo
 
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)Alex Camargo
 
Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...Alex Camargo
 
Fake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigaçãoFake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigaçãoAlex Camargo
 
PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020Alex Camargo
 
Ia versus covid 19 - alex
Ia versus covid 19 - alexIa versus covid 19 - alex
Ia versus covid 19 - alexAlex Camargo
 
2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial Intelligence2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial IntelligenceAlex Camargo
 
Aula 5 - Considerações finais
Aula 5 - Considerações finaisAula 5 - Considerações finais
Aula 5 - Considerações finaisAlex Camargo
 
Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)Alex Camargo
 

Mais de Alex Camargo (20)

Escola Bíblica - Eclesiologia
Escola Bíblica - EclesiologiaEscola Bíblica - Eclesiologia
Escola Bíblica - Eclesiologia
 
Escola Bíblica - Demonologia
Escola Bíblica - DemonologiaEscola Bíblica - Demonologia
Escola Bíblica - Demonologia
 
Python para finanças: explorando dados financeiros
Python para finanças: explorando dados financeirosPython para finanças: explorando dados financeiros
Python para finanças: explorando dados financeiros
 
A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?A practical guide: How to use Bitcoins?
A practical guide: How to use Bitcoins?
 
IA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínasIA e Bioinformática: modelos computacionais de proteínas
IA e Bioinformática: modelos computacionais de proteínas
 
Introdução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurançaIntrodução às criptomoedas: investimento, mercado e segurança
Introdução às criptomoedas: investimento, mercado e segurança
 
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!Introdução às criptomoedas:  criando a sua própria moeda como o Bitcoin!
Introdução às criptomoedas: criando a sua própria moeda como o Bitcoin!
 
Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)Cristão versus Redes Sociais - Alex (Arca da Aliança)
Cristão versus Redes Sociais - Alex (Arca da Aliança)
 
Empatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom SamaritanoEmpatia e compaixão: O Bom Samaritano
Empatia e compaixão: O Bom Samaritano
 
Alta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem praticaAlta performance em IA: uma abordagem pratica
Alta performance em IA: uma abordagem pratica
 
Bioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidadeBioinformática do DNA ao medicamento: ferramentas e usabilidade
Bioinformática do DNA ao medicamento: ferramentas e usabilidade
 
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mãoInteligência Artificial aplicada: reconhecendo caracteres escritos à mão
Inteligência Artificial aplicada: reconhecendo caracteres escritos à mão
 
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
IA versus COVID-19 Deep Learning, Códigos e Execução em nuvem (Tchelinux 2020)
 
Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...Algoritmos de inteligência artificial para classificação de notícias falsas. ...
Algoritmos de inteligência artificial para classificação de notícias falsas. ...
 
Fake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigaçãoFake News - Conceitos, métodos e aplicações de identificação e mitigação
Fake News - Conceitos, métodos e aplicações de identificação e mitigação
 
PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020PredictCovid: IA. SIEPE UNIPAMPA 2020
PredictCovid: IA. SIEPE UNIPAMPA 2020
 
Ia versus covid 19 - alex
Ia versus covid 19 - alexIa versus covid 19 - alex
Ia versus covid 19 - alex
 
2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial Intelligence2a Mini-conf PredictCovid. Field: Artificial Intelligence
2a Mini-conf PredictCovid. Field: Artificial Intelligence
 
Aula 5 - Considerações finais
Aula 5 - Considerações finaisAula 5 - Considerações finais
Aula 5 - Considerações finais
 
Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)Aula 04 - Injeção de código (Cross-Site Scripting)
Aula 04 - Injeção de código (Cross-Site Scripting)
 

Web Scraping com Python: coletando dados como um artesão

  • 1. Web ScrapingWeb Scraping: coletando dados como um artesão: coletando dados como um artesão Prof. Alex Dias Camargo alexcamargo@ifsul.edu.br UNIVERSIDADE FEDERAL DE PELOTAS CAMPUS ANGLO SACOMP 2019 MINICURSOS
  • 2. 2 I. Agenda Este minicurso está organizado da seguinte maneira:  Apresentação  Objetivos  Componentes de uma página web  O que é Web scraping?  Ferramentas e códigos  Scraping na prática: Wikipédia  Exercícios: ufpel.edu.br  Bônus: web scraping completo em 4 minutos (GUI mode)  Onde estudar  Agradecimentos  Referências SACOMP - 2019
  • 3. 3 II. Apresentação Formação acadêmica:  Bacharel em Sistemas de Informação (URCAMP, 2011) TCC: Web sistema integrado a uma rede social para academias de ginástica Orientador: Prof. Abner Guedes  Especialista em Sistemas Distribuídos com Ênfase em Banco de Dados (UNIPAMPA, 2013) TCC: Interligando bases de dados do sistema Controle de Marcas e Sinais utilizando o MySQL Cluster Orientador: Prof. Érico Amaral Coorientador: Prof. Rafael Bastos (IDEAU) TCHELINUX - 2019
  • 4. 4 II. Apresentação Formação acadêmica:  Mestre em Engenharia de Computação (FURG, 2017) Dissertação: EN-MUTATE: predição do impacto de mutações pontuais em proteínas utilizando Ensemble Learning Orientadora: Profa. Karina Machado Coorientador: Prof. Adriano Werhli  Doutorado (iniciado) em Ciência da Computação (UFPEL) Tese: Em definição Orientador: Aluno especial SACOMP - 2019
  • 5. 5 II. Apresentação Experiência acadêmica:  Professor (Ensino Técnico) Local: Capacitar Escola Técnica Disciplinas: Banco de Dados e Análise de Sistemas  Professor (Ensino Superior) Local: Universidade Federal do Pampa - UNIPAMPA Disciplinas: Algoritmos e Programação, Laboratório Programação I e Laboratório de Programação II  Professor (Ensino Básico, Técnico e Tecnológico) Local: IFSUL Câmpus Bagé Disciplinas: Programação para Web II, Arquitetura de Computadores, Qualidade de Software, Desenvolvimento de Software, Informática (Eng. Agronômica) SACOMP - 2019
  • 6. 6 II. Apresentação Projetos acadêmicos:  Algo+: um portal para o apoio ao ensino de Algoritmos Universidade: UNIPAMPA Área: Informática na educação  Bioinformática Estrutural de Proteínas: modelos, algoritmos e aplicações biotecnológicas Universidade: FURG/UFMG/UFPB Área: Bioinformática  Unihacker.Club: Programa Universidade Hacker Universidade: UNIPAMPA Área: Segurança da informação SACOMP - 2019
  • 7. 7 II. Apresentação Periódicos acadêmicos:  Revisor do periódico ICCEEg (ISSN 2236-0093) Universidade: FURG Área: Multidisciplinar  Revisor do periódico CCEI (ISSN 2356-6635) Universidade: URCAMP Área: Multidisciplinar SACOMP - 2019
  • 8. 8 III. Objetivos Dentre os objetivos, podem ser destacados:  Compreender os conceitos e aplicações do Web Scraping.  Explorar tecnologias no contexto Python/Linux.  Motivar novos cientistas de dados. SACOMP - 2019
  • 9. 9 1. Os componentes de uma página web SACOMP - 2019
  • 10. 10 1. Os componentes de uma página web Quando uma página na Internet é visitada, o navegador faz uma solicitação à um servidor web. Essa solicitação é chamada de GET, pois são recebidos arquivos do servidor.  HTML: contém o conteúdo principal da página.  CSS: adiciona estilos para que a página fique customizada.  JS: arquivos JavaScript adicionam interatividade à página.  Imagens: formatos de imagem, tais como JPG e PNG. SACOMP - 2019
  • 11. 11 1. Os componentes de uma página web SACOMP - 2019 Figura. Camadas do desenvolvimento web.
  • 12. 12 1. Os componentes de uma página web SACOMP - 2019 Figura. Estrutura básica do HTML5.
  • 13. 13 1. Os componentes de uma página web SACOMP - 2019 Figura. Arquitetura web padrão.
  • 14. 14 2. O que é Web Scraping? SACOMP - 2019
  • 15. 15 2. O que é Web Scraping? Web Scraping é um método de "raspagem" de dados de sites que usa scripts para obter as informações necessárias, simulando um comportamento "humano".  Um uso popular do scraping na web é procurar ofertas online, como passagens aéreas, shows, etc. SACOMP - 2019
  • 16. 16 2. O que é Web Scraping? SACOMP - 2019 Figura. Visão geral de um web scraping.
  • 17. 17 2. Web Scraping SACOMP - 2019 Figura. Visão geral de um web scraping.
  • 18. 18 2. O que é Web Scraping? SACOMP - 2019 Figura. Visão geral de um web scraping.
  • 19. 19 2. Web Scraping SACOMP - 2019 Figura. Web Scraping versus Web Crawling.
  • 20. 20 2. Web Scraping SACOMP - 2019 Figura. Aplicações do web scraping.
  • 21. 21 2. O que é Web Scraping? Web Scraping é um método de "raspagem" de dados de sites que usa scripts para obter as informações necessárias, simulando um comportamento "humano".  Um uso popular do scraping na web é procurar ofertas online, como passagens aéreas, shows, etc.  Existem empresas especializadas no ramo? SACOMP - 2019
  • 22. 22 2. O que é Web Scraping? SACOMP - 2019 Figura. Empresas de web scraping.
  • 23. 23 2. O que é Web Scraping? SACOMP - 2019 Figura. Empresas de web scraping.
  • 24. 24 2. O que é Web Scraping? Web Scraping é um método de "raspagem" de dados de sites que usa scripts para obter as informações necessárias, simulando um comportamento "humano".  Um uso popular do scraping na web é procurar ofertas online, como passagens aéreas, shows, etc.  Existem empresas especializadas no ramo?  Uma alternativa para o web scraping é usar uma API, se houver alguma disponível. Ex.: Twitter, Instagram, Facebook, etc. SACOMP - 2019
  • 25. 25 2. O que é Web Scraping? SACOMP - 2019 Figura. APIs para extração de dados.
  • 26. 26 2. O que é Web Scraping? SACOMP - 2019 Figura. APIs para extração de dados.
  • 27. 27 2. O que é Web Scraping? Web Scraping é um método de "raspagem" de dados de sites que usa scripts para obter as informações necessárias, simulando um comportamento "humano".  Um uso popular do scraping na web é procurar ofertas online, como passagens aéreas, shows, etc.  Existem empresas especializadas no ramo?  Uma alternativa para o web scraping é usar uma API, se houver alguma disponível. Ex.: Twitter, Instagram, Facebook, etc.  "Be polite" (seja educado): um scraping pode sobrecarregar um servidor, principalmente, se o script estiver fazendo uma grande quantidade de solicitações. Respeite o robots.txt! SACOMP - 2019
  • 28. 28 2. Web Scraping SACOMP - 2019 Figura. Muitas requisições "simultâneas".
  • 29. 29 2. Web Scraping SACOMP - 2019 Figura. Exemplo de um robots.txt.
  • 30. 30 3. Ferramentas e códigos SACOMP - 2019
  • 31. 31 3. Ferramentas e códigos KIT DO WEB SCRAPER:  GitHub do projeto: https://github.com/alexcamargoweb/python-webscraping  Linux Mint: https://linuxmint.com/download.php  Python 3: https://www.python.org/downloads/  Requests: https://pypi.org/project/requests/  URLlib: https://pypi.org/project/urllib3/  BeautifulSoup: https://pypi.org/project/beautifulsoup4/ SACOMP - 2019
  • 32. 32 3. Ferramentas e códigos KIT DO WEB SCRAPER:  Selenium: https://pypi.org/project/selenium/  Firefox geckodriver: https://github.com/mozilla/geckodriver/releases/  Selenium IDE (Firefox extension): https://addons.mozilla.org/pt-BR/firefox/addon/selenium-ide/ SACOMP - 2019
  • 33. 33 3. Ferramentas e códigos Demonstração... SACOMP - 2019 Figura. Exemplo de códigos. Link: https://github.com/alexcamargoweb/python-webscraping
  • 34. 34 4. Scraping na prática: Wikipédia SACOMP - 2019
  • 35. 35 4. Scraping na prática: Wikipédia SACOMP - 2019 Figura. Exemplo de código: Lista os presidentes dos EUA. Link: https://www.codementor.io/dankhan/web-scrapping-using-python-and-beautifulsoup-o3hxadit4
  • 37. 37 5. Exercícios Tendo como ponto de partida o endereço: http://portal.ufpel.edu.br/ 1. Mostre o trecho que exibe o Copyright do portal. 2. Exiba os informes acadêmicos mostrados na página inicial. 3. Exiba uma lista contendo as unidades acadêmicas da UFPEL. 4. Faça uma extração da lista de serviços disponíveis na UFPEL. 5. Armazene o conteúdo da questão anterior no formato "txt". 6. Considerando a mesma lista de serviços crie um arquivo CSV com o seguinte cabeçalho e conteúdo: Serviço; Link 7. Salve uma captura da tela principal do portal com nome de "ufpel_website.png" SACOMP - 2019
  • 38. 38 6. Bônus: Web scraping completo em 4 minutos (GUI mode) SACOMP - 2019
  • 39. 39 6. Bônus: Web scraping completo em 4 minutos (GUI mode) Demonstração... SACOMP - 2019
  • 40. 40 IV. Onde estudar Se interessou pelo assunto? :)  Learn Web Scraping with Python from Scratch (15.851 alunos) https://www.udemy.com/course/web-scraping-python-tutorial/  Anotações e scripts de web scraping, screen scraping, etc https://github.com/ferreiraapfernanda/web-scraping  Curso de Raspagem e Análise de Dados https://github.com/fmasanori/treinamento  Python Selenium WebDriver https://www.youtube.com/playlist?list=PLUY1lsOTtPeJNBuSweX S9pcSKbP4mr32S  MITCHELL, Ryan. Web Scraping with Python: Collecting More Data from the Modern Web. "O'Reilly, Inc.", 2018. https://www.amazon.com/Web-Scraping-Python-Collecting-Mod ern/dp/1491910291 SACOMP - 2019
  • 41. 41 Agradecimentos Obrigado pela sua participação! :)  Acadêmicos do curso de Engenharia de Computação  Programa de Educação Tutorial - PET Computação  Toda honra e glória ao Senhor Jesus! Abraços, Prof. Alex Dias Camargo UFPEL – Campus Anglo 05 de Novembro de 2019 SACOMP - 2019