Académique Documents
Professionnel Documents
Culture Documents
Estruturação
No esquema 1 pode-se notar que um robô realiza a petição no servidor, como se fosse
um humano, o servidor descarga o documento html, é nessa ação que começa a
indexação e a procura na estrutura html da informação de interesse, para
posteriormente ser armazenada em SpreadSheets ou Databases.
Os robôs de captura de informação geralmente são denominados como Spiders, e pela
finalidade o processo pode-se dividir em Crowling vertical e horizontal.
Crowling vertical
Pagina 1 2 3 4 5 6 7 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . n
Crowling horizontal
Esquema 2-Tipos WebScraping (Zavaleta 2018)
Engenharia Aplicada Francis Benjamin Zavaleta Castro
O crowling vertical, procura numa página em específico informação item por item, o
processo horizontal é feito a procura em várias páginas em simultâneo.
2. DESENVOLVIMENTO DO CÓDIGO
Vamos utilizar Python para programar nosso primeiro Spider na ide Jupiter Notebook
no ambiente de desenvolvimento de Anaconda , mas o leitor pode programar na ide da
sua preferência.
E importante grifar que as práticas ensinadas devem ser aplicadas eticamente, sem
usurpar informações confidenciais nem lucrar com os dados sem a permissão dos donos.
O conteúdo neste artigo é totalmente para fins didáticos.
A lógica de programação será em função no esquema 1:
Biblioteca urllib. request
Url Capturar a
Realizar a Fechar a
Semilha petição resposta(bytes) conexão
Indexação a Estruturação
Salvar em Estruturação
partir de uma html da
arquivo csv de dados
lista resposta
Biblioteca BeautifulSoup
Esquema 3-Lógica de programação Spider (Zavaleta 2018)
Agora procederemos a definir a nossa url semilha como variável, que será a procura de
uma placa esp8266 NodeMcu:
Vemos que retornou um conjunto de bytes, sem a formatação html, necessária para
realizar a indexação, já que capturamos a resposta fecharemos o processo I/O para
posteriormente dar o formato necessário:
Formatando a resposta:
Temos que entender uma estrutura html como um modelo de árvore, para isso é
necessário procurar o “pai”, nosso caso é li class
Vemos que são estruturas similares, e existem uma para cada produto visualizado na
página, estruturaremos essas informações numa lista, para isso procuraremos todos os
objetos li que contém a classe "results-item article grid item-info-height-169”
Podemos notar que estamos indexando o texto, pegando o caráter da primeira posição,
temos que ter cuidado com os centavos de reais porque pode não existir caso que o
valor seja múltiplo de 10(R$10, R$150, etc), nesse exemplos a indexação resultaria num
erro “fora do range”, para isso vamos tratar esse erro utilizando uma estrutura
condicional:
Vamos a visualizar os dados resultantes da estrutura for, é bom lembrar que o “article”
é um iterável que só existe na estrutura, que toma o valor de cada item na página.
Articles é a lista, é assim como funciona a lógica de procurar item por item, realizando
um crowling vertical, idêntico no esquema 2.
Engenharia Aplicada Francis Benjamin Zavaleta Castro
Vemos que os dados estão estruturados, definidos em dois campos: título e preço total,
agora vamos a salvar esses dados num arquivo csv:
3. CONCLUÇÕES:
• O sucesso dos requests feitos pelo robô, dependeram das restrições do firewall
e a rede, muitos servidores têm barreiras para detectar bots e usuários não
humanos, tornando-se um verdadeiro desafio realizar webscraping.
4. SOBRE O AUTOR:
Francis Benjamin Zavaleta Castro:
Formado em engenharia Industrial e engenharia de produção, é
consultor sênior de Data & Analytics, seu principal campo de estudo
é o desenvolvimento de soluções de negócio inteligentes integrando
eletrônica, ciência da computação e tecnologias emergentes.
Email:benjamin1992.1992@gmail.com
Linkedin: https://www.linkedin.com/in/benjaminzavaleta/