SlideShare uma empresa Scribd logo
1 de 17
.NET Core + Selenium + MongoDB
EXTRAÇÃO DE DADOS DE PÁGINAS WEB
Renato Groffe
◦ Microsoft Most Valuable Professional (MVP)
◦ Multi-Plataform Technical Audience Contributor (MTAC)
◦ Mais de 15 anos de experiência na área de Tecnologia
◦ Autor Técnico e Palestrante
Contatos
https://medium.com/@renato.groffe/
/renatogroffe /in/renatogroffe
/canaldotnet
/renatogroffe
/canaldotnet
/renatogroff
Agenda
◦ Extração de dados da Web: motivações
◦ Selenium WebDriver: uma visão geral
◦ Extração de dados com .NET Core e Selenium: exemplos práticos
Extração de dados da Web - Motivações
◦ Nem sempre existem APIs REST (públicas ou
privadas) para atender a uma demanda
específica
◦ Aplicações podem ser construídas para a
extração de dados a partir de páginas Web
Solução Possível
◦ Implementação de robôs/bots para extração e carga de dados
Solução Possível - .NET Core + Selenium WebDriver
+
Selenium – Visão Geral
◦ Testes automatizados de interfaces Web
◦ Recursos para a manipulação de elementos de uma página HTML
◦ Agora também em conformidade com o .NET Standard 2.0
◦ Compatibilidade com browsers como
Firefox, Chrome, Internet Explorer, Edge, Opera
◦ Site: http://www.seleniumhq.org/
Selenium – Plataformas Suportadas
Selenium e boas práticas
◦ Uso do padrão Page Object, proposto por Martin Fowler
◦ Encapsulamento das chamadas envolvendo a manipulação de elementos
HTML, de forma a simplificar a escrita de testes
◦ Referência:
http://martinfowler.com/bliki/PageObject.html
Que tal não abrir múltiplas janelas?
◦Browsers como Mozilla Firefox e Google
Chrome contam agora com o modo
headless
◦Maior velocidade na execução de testes
◦Quem está executando os testes não
precisa aguardar a sua execução e
conclusão
E como fica a extração de dados?
◦ Processos de extração podem ser implementados em .NET
Core e empregando Selenium WebDriver
◦ Uso de modo headless
◦ A manipulação de elementos HTML estará completamente
desvinculada da implementação de testes
◦ .NET Standard → compatibilidade com .NET Full e .NET
Core
◦ .NET Core + Selenium WebDriver → o caráter
multiplaforma desta combinação é mais uma vantagem
+
Por que MongoDB?
◦Open source
◦Multiplataforma
◦Flexibilidade por ser schemaless
Exemplo de Extração com .NET Core, MongoDB e Selenium WebDriver
Exemplo utilizado
◦Extração de dados da NBA (EUA)
https://github.com/renatogroffe/DotNetCore2-NBA
Dúvidas?
Obrigado!

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
Arquitetura de Microserviços - Stone Tech Saturday - Março/2017
 
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
Construindo APIs seguras com o ASP.NET Core - .NET Community Summit 2018
 
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
.NET Core 2.0, .NET Standard 2.0 e ASP.NET Core 2.0: uma visão geral
 
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
Desenvolvendo APIs seguras com ASP.NET Core, JWT, Docker e Azure Web App on L...
 
ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017Mocking Test - ThinkUp! - Abril/2017
Mocking Test - ThinkUp! - Abril/2017
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure BrasilImplementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
Implementando APIs seguras na nuvem - Outubro-2018 - Azure Brasil
 
Começando com meteor
Começando com meteorComeçando com meteor
Começando com meteor
 
Apache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSFApache Wicket derruba o padrão JSF
Apache Wicket derruba o padrão JSF
 
Introdução ao Nodejs
Introdução ao NodejsIntrodução ao Nodejs
Introdução ao Nodejs
 
Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017Behavior-Driven Development (BDD) - Abril/2017
Behavior-Driven Development (BDD) - Abril/2017
 
O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017O novo ASP.NET - Stone Tech Saturday - Março/2017
O novo ASP.NET - Stone Tech Saturday - Março/2017
 
Desenvolvimento web ágil com Django
Desenvolvimento web ágil com DjangoDesenvolvimento web ágil com Django
Desenvolvimento web ágil com Django
 
ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016ASP.NET Core - iMasters - Março/2016
ASP.NET Core - iMasters - Março/2016
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
Curso HTML 5 - Aula Inicial
Curso HTML 5 - Aula InicialCurso HTML 5 - Aula Inicial
Curso HTML 5 - Aula Inicial
 
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
Descomplicando a montagem de ambientes de Desenvolvimento/Testes com Docker -...
 
Meteor - TechParty 2015
Meteor - TechParty 2015Meteor - TechParty 2015
Meteor - TechParty 2015
 
Arquiteturas Serverless + Azure Functions - Semana FCI - Mackenzie - Outubro-...
Arquiteturas Serverless + Azure Functions - Semana FCI - Mackenzie - Outubro-...Arquiteturas Serverless + Azure Functions - Semana FCI - Mackenzie - Outubro-...
Arquiteturas Serverless + Azure Functions - Semana FCI - Mackenzie - Outubro-...
 

Semelhante a .NET Core + MongoDB + Selenium: extração de dados de páginas Web - Databases SP

Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Allyson Barros
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
Igor Sobreira
 

Semelhante a .NET Core + MongoDB + Selenium: extração de dados de páginas Web - Databases SP (20)

Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
Extração Automatizada de Dados da Web com Selenium WebDriver - Web Scraping -...
 
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - JoinvilleExtração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
Extração de Dados da Web com Selenium WebDriver - SQLSaturday #817 - Joinville
 
Testando Aplicações Web com Selenium WebDriver - .NET SP - Novembro-2018
Testando Aplicações Web com Selenium WebDriver - .NET SP - Novembro-2018Testando Aplicações Web com Selenium WebDriver - .NET SP - Novembro-2018
Testando Aplicações Web com Selenium WebDriver - .NET SP - Novembro-2018
 
Extração de Dados na Web com MongoDB e Selenium - TDC 2018 - São Paulo
Extração de Dados na Web com MongoDB e Selenium - TDC 2018 - São PauloExtração de Dados na Web com MongoDB e Selenium - TDC 2018 - São Paulo
Extração de Dados na Web com MongoDB e Selenium - TDC 2018 - São Paulo
 
Framework web 02 - 2016
Framework web 02 - 2016Framework web 02 - 2016
Framework web 02 - 2016
 
Testes de aplicações Web com Selenium, .NET Standard e .NET Core 2.0 - .NET S...
Testes de aplicações Web com Selenium, .NET Standard e .NET Core 2.0 - .NET S...Testes de aplicações Web com Selenium, .NET Standard e .NET Core 2.0 - .NET S...
Testes de aplicações Web com Selenium, .NET Standard e .NET Core 2.0 - .NET S...
 
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
Automatizando o build, testes e deployment de websites com GitHub Actions, Se...
 
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
Aprendendo Na Prática: Aplicativos Web com HTML5, Angular.js, Twitter Bootstr...
 
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
Automatizando o teste de aplicações Web com Selenium WebDriver e Azure DevOps...
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Automação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira ÁgilAutomação de Teste em Front End - Caipira Ágil
Automação de Teste em Front End - Caipira Ágil
 
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem DorPlay Framework - Desenvolvendo Aplicações Web com Java sem Dor
Play Framework - Desenvolvendo Aplicações Web com Java sem Dor
 
Node.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançadoNode.JS - Workshop do básico ao avançado
Node.JS - Workshop do básico ao avançado
 
Minicurso sobre testes de interfaces com Selenium
Minicurso sobre testes de interfaces com SeleniumMinicurso sobre testes de interfaces com Selenium
Minicurso sobre testes de interfaces com Selenium
 
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
TechEd Brasil 2010 - Novidades e razões para migrar para o microsoft .net fra...
 
Desenvolvimento web com python e django
Desenvolvimento web com python e djangoDesenvolvimento web com python e django
Desenvolvimento web com python e django
 
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017Mocks, Stubs e Fakes - Developers-SP - Julho-2017
Mocks, Stubs e Fakes - Developers-SP - Julho-2017
 
Desenvolvimento Web com JSF
Desenvolvimento Web com JSFDesenvolvimento Web com JSF
Desenvolvimento Web com JSF
 
Desenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVCDesenvolviemento web com ASP.Net e MVC
Desenvolviemento web com ASP.Net e MVC
 
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)ASP.NET MVC para desenvolvedores Web Forms (TechEd)
ASP.NET MVC para desenvolvedores Web Forms (TechEd)
 

Mais de Renato Groff

Mais de Renato Groff (20)

Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
Microsoft Azure role-based certifications valem a pena? | Interop Day Edição ...
 
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
Kubernetes: dicas e truques para o dia a dia | Azure Experts - Novembro-2020
 
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
Como o Microsoft Azure pode melhorar o desenvolvimento de seu Back-End? | Dev...
 
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
Como avançar na Power Platform com Azure Functions e Logic Apps | MVPConf Lat...
 
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
GitHub Actions: descomplicando o build/deployment automatizados | MVPConf Lat...
 
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
A evolução da plataforma .NET: passado, presente e futuro | Baixada NERD - No...
 
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
Polly: aplicações .NET resilientes e um melhor tratamento de falhas | MVPConf...
 
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
Containers no Azure: Docker, Kubernetes e suas diferentes possibilidades | MV...
 
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
Docker: dicas e truques para o dia a dia | MVPConf Latam 2020
 
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
Simplificando a montagem de ambientes de Dev+Testes com Docker | DEVDAY 2020
 
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |....NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
.NET Core + Serverless: Desenvolvimento Multiplataforma com Azure Functions |...
 
Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020Aplicações Distribuídas com .NET | TDC Recife Online 2020
Aplicações Distribuídas com .NET | TDC Recife Online 2020
 
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
Novidades do .NET 5 e ASP.NET 5 | Visual Studio Summit 2020
 
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
Serverless + Integrações com BDs: Azure Functions e Logic Apps - SQLSaturday ...
 
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
Boas práticas de segurança no acesso a dados em Web Apps - SQLSaturday #972 -...
 
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
.NET: passado, presente e futuro | Semana FCI 2020 - Mackenzie
 
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
Docker: visão geral e primeiros passos | Fatec Praia Grande - Semana Tecnológ...
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado | Setembro-2020
 
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
Sobrevoando os serviços do Azure | TDC São Paulo Online 2020
 

.NET Core + MongoDB + Selenium: extração de dados de páginas Web - Databases SP

  • 1. .NET Core + Selenium + MongoDB EXTRAÇÃO DE DADOS DE PÁGINAS WEB
  • 2. Renato Groffe ◦ Microsoft Most Valuable Professional (MVP) ◦ Multi-Plataform Technical Audience Contributor (MTAC) ◦ Mais de 15 anos de experiência na área de Tecnologia ◦ Autor Técnico e Palestrante
  • 4. Agenda ◦ Extração de dados da Web: motivações ◦ Selenium WebDriver: uma visão geral ◦ Extração de dados com .NET Core e Selenium: exemplos práticos
  • 5. Extração de dados da Web - Motivações ◦ Nem sempre existem APIs REST (públicas ou privadas) para atender a uma demanda específica ◦ Aplicações podem ser construídas para a extração de dados a partir de páginas Web
  • 6. Solução Possível ◦ Implementação de robôs/bots para extração e carga de dados
  • 7. Solução Possível - .NET Core + Selenium WebDriver +
  • 8. Selenium – Visão Geral ◦ Testes automatizados de interfaces Web ◦ Recursos para a manipulação de elementos de uma página HTML ◦ Agora também em conformidade com o .NET Standard 2.0 ◦ Compatibilidade com browsers como Firefox, Chrome, Internet Explorer, Edge, Opera ◦ Site: http://www.seleniumhq.org/
  • 10. Selenium e boas práticas ◦ Uso do padrão Page Object, proposto por Martin Fowler ◦ Encapsulamento das chamadas envolvendo a manipulação de elementos HTML, de forma a simplificar a escrita de testes ◦ Referência: http://martinfowler.com/bliki/PageObject.html
  • 11. Que tal não abrir múltiplas janelas? ◦Browsers como Mozilla Firefox e Google Chrome contam agora com o modo headless ◦Maior velocidade na execução de testes ◦Quem está executando os testes não precisa aguardar a sua execução e conclusão
  • 12. E como fica a extração de dados? ◦ Processos de extração podem ser implementados em .NET Core e empregando Selenium WebDriver ◦ Uso de modo headless ◦ A manipulação de elementos HTML estará completamente desvinculada da implementação de testes ◦ .NET Standard → compatibilidade com .NET Full e .NET Core ◦ .NET Core + Selenium WebDriver → o caráter multiplaforma desta combinação é mais uma vantagem +
  • 13. Por que MongoDB? ◦Open source ◦Multiplataforma ◦Flexibilidade por ser schemaless
  • 14. Exemplo de Extração com .NET Core, MongoDB e Selenium WebDriver
  • 15. Exemplo utilizado ◦Extração de dados da NBA (EUA) https://github.com/renatogroffe/DotNetCore2-NBA