Slide 1

Slide 1 text

Search Engines utilizando Python e Elasticsearch

Slide 2

Slide 2 text

Apresentação https://spekerdeck.com/pattyvader/pybr12

Slide 3

Slide 3 text

Projeto Athena https://github.com/pattyvader/athena

Slide 4

Slide 4 text

Roadmap 1. Busca de documentos 2. Indexação 3. Percorrendo a web

Slide 5

Slide 5 text

Busca de documentos

Slide 6

Slide 6 text

Busca de documentos Resultado armazenado no Elasticsearch Termo de busca

Slide 7

Slide 7 text

Busca de documentos Servidor de aplicação com Django GET Browser (HTML)

Slide 8

Slide 8 text

Servidor de aplicação com Django Busca de documentos GET Browser (HTML)

Slide 9

Slide 9 text

Busca de documentos . Servidor de aplicação com Django

Slide 10

Slide 10 text

Busca de documentos views.py Acessar o método “search” Servidor de aplicação com Django

Slide 11

Slide 11 text

Busca de documentos views.py Acessar o método “search” Acessar o método “search_term” Servidor de aplicação com Django

Slide 12

Slide 12 text

Indexação https://www.elastic.co/downloads/elasticsearch Relevancy score Protocolo Restful Mensagens Json

Slide 13

Slide 13 text

Indexação Relevance score

Slide 14

Slide 14 text

Indexação Restful/Json PUT GET

Slide 15

Slide 15 text

Indexação https://www.elastic.co/use-cases

Slide 16

Slide 16 text

Indexação O processo de indexação utiliza a lib Elasticsearch-py para conectar o Python com o Elasticsearch. indexer.py https://pypi.python.org/pypi/elasticsearch https://elasticsearch-py.readthedocs.io/en/master/ https://github.com/elastic/elasticsearch-py Cria um índice Adiciona uma nova página ao índice

Slide 17

Slide 17 text

Indexação scraper.py O scraper extrai os dados, do arquivo html, utilizando a lib BeautifulSoup. https://www.crummy.com/software/BeautifulSoup/

Slide 18

Slide 18 text

scraper.py Indexação Metatags do html

Slide 19

Slide 19 text

Percorrendo a web - Web crawler crawler.py

Slide 20

Slide 20 text

Percorrendo a web - Web crawler 1 3 2 4 5 Acessa arquivo robot.txt Download do html Extraí novos links Extraí os dados Insere dados no elasticsearch indexer.py scraper.py crawler.py

Slide 21

Slide 21 text

Percorrendo a web - Web crawler Antes de “crawlear” uma página sempre verifique o arquivo “robot.txt”. É uma boa prática. crawler.py

Slide 22

Slide 22 text

Percorrendo a web - Web crawler A “urllib2” retorna o html da página. crawler.py

Slide 23

Slide 23 text

Percorrendo a web- Web crawler crawler.py A extração de novos links é realizada somente no domínio da url seed.

Slide 24

Slide 24 text

Percorrendo a web- Web crawler Método que realiza a extração dos dados presentes no html. scraper.py crawler.py

Slide 25

Slide 25 text

Percorrendo a web- Web crawler Método que realiza a indexação das páginas no Elasticsearch. indexer.py crawler.py

Slide 26

Slide 26 text

Finalizando... Browser (HTML) GET Servidor de aplicação com Django scraper.py crawler.py indexer.py GET internet

Slide 27

Slide 27 text

https://github.com/pattyvader https://br.linkedin.com/in/patricia-regina-18790040 Contato *Designed by Freepik from www.flaticon.com* [email protected]