Introdução à Ciência de Dados - Introdução Web Scraping

5.99k views3749 WordsCopy TextShare
UNIVESP
univesp.br Ciência de Dados - COM350 Univesp - Universidade Virtual do Estado de São Paulo Profess...
Video Transcript:
E aí [Música] o Olá pessoal sobrancelha Duarte Santarém e essa aqui é a disciplina de introdução à Ciência de dados a gente vai falar hoje especificamente sobre introdução à webscrap algo muito legal webscrap então a gente vai tratar de um tema como é que pode levar muita se sentir como se fosse um rack aí é verdade é um pouco disso mesmo né é da gente buscar dados em ambiente web então realizar o scrap ao a tarefa muito interessante né ela trata de uma prática de coletar dados automaticamente através de meios que não seja um AP
por exemplo né uma aquela aquela aquele tipo de de contexto onde vocês conecta né e ele traz um conjunto de dados já previamente tratado aqui o que a gente vai fazer é com scrap é uma aplicação capaz de consultar um servidor web ou seja batendo uma página Web lá né solicitar esses dados e a gente mesmo vai tratar esses dados e poder guardar no banco de dados guardar numa planilha fazendo a gente tudo que a gente achar melhor bom a prática de webscrap normalmente é uma solução quando não há uma das maneiras de coletar dados
necessários para um projeto é a sua talvez a última opção aí né mas em muitos casos também uma prática de acelerar o processo que antes era feito manualmente é pode pegar os crepes em por exemplo né e fazer isso conectar a um site não tá lá pegar dado você pode fazer isso né quantas possibilidades tem usuário uma ciência se conectar com os olhos sem mais faz isso automático robozinho você não vai programar para fazer isso bom muitas vezes né base dados públicos não estão disponíveis para serem consumidas né não tem um arquivo csv eu não
tenho uma base para você puxar entretanto esses dados estão disponíveis por meio de uma página Web nesses casos né os crescem funciona muito bem com esse tipo de proposta quer dizer para vocês né que com lgpd a coleta de dados sempre algo que tá ser muito pensado pensado com cuidado nem todo dado que tá público né Você deve tá exposto aí pode ser consumido e utilizado para o seu negócio é o bastante E com isso pessoal ao pensar em scrap imagina o conjunto de dados que se você precisa coletar juntar né E que você vai
ter um robozinho que vai fazer isso na verdade o robozinho que vai fazer é você você vai preparar esse robozinho para ir lá e completar esses dados Então é só peguei alguns exemplos aqui de páginas né então eu tenho uma página aqui por exemplo um recorte aqui que eu tenho a classificação do campeonato brasileiro de futebol é o time os pontos essa informação aqui eu tenho a página do Banco Central né É aonde eu posso coletar o valor do dólar valor do Euro por data valor de compra valor de venda em fim aqui eu tenho
um prédio e viu né que é uma um site também para coletar por exemplo os dados sei lá das ações da Petrobras quero coletar o valor eu quero cortar conta subindo quando está descendo aqui é do lado direito eu tenho né tarifas de pedágio Então é só aqui eu tenho informação a respeito da rodovia e do valor E aí fim cada um dos quilômetros né Eu não tenho que unidade outra maneira tem dessa maneira Posso coletar esses dados aqui embaixo eu tenho aquela tabela do vacinómetro né é Quantas doses Foram aplicadas quantos por cento enfim
são Dados que estão em páginas Eles não estão um arquivo que você pode baixar Então você sabe essa informação se conectar na página é mandar buscar aí você vai tratar essa informação para poder utilizar vó uma das maneiras de fazer isso né é por dentro da biblioteca meu tipo sou que é uma das lotéricas mais utilizadas para fazer webscrap Há muitas outras bibliotecas para fazer scrap pessoal como Selenium por exemplo os crepes são outros até que também bastante conhecidas e que também tem funcionalidades muito parecidas com essa em uma outra diferente como qualquer um qualquer
situação de vai ter bibliotecas Diferentes né mas que no geral operam parecidas cada uma delas tem suas vantagens e desvantagens tanto a grande vantagem entre elas é que a lógica de pensamento e tem uma similaridade é a ideia mais ou menos a mesmo a Ana Tex beautifulsoup constrói uma árvore A partir de vários elementos de uma página e fornece uma interface simples para vocês a gente vai ver como fazer isso então pode usar biblioteca beautifulsoup é a gente vai precisar de ajuda da biblioteca requeste né e de um passeador HTML gente vai pegar os dados
é fazer um request na página vai tratar um passeador HTML e teve o secador de consultas várias vai ajudar a gente aí coletando essas informações bom eu vou fazer uma demonstração pessoal da outra biblioteca para coletar dados né de uma página de popularidade de linguagens de programação tá gente vai fazer uma demonstração aqui também esse tempo já falei para vocês aí da última aula né que eu não vou mais digitar porque acaba eu não acabo não conseguindo dar conta fazer tudo no tempo da vídeo aula então eu trouxe já digitado a gente vai executando eu
vou explicando como é que funciona a casa comando Lembrando que todos esses notebooks ficam disponíveis para vocês darem download tá disponível aí na disciplina combinado no lá então é bom a gente chegou aqui já na demonstração então aqui demonstração de scrap né da vídeo aula 8 a gente ele vai importar as bibliotecas então eu vou precisar da biblioteca Wiki quests eu vou passar biblioteca PS4 que a Biblioteca beautiful Soul e mas vai cortar o pano também que a gente vai usar ele agora mandar a rodar aqui né porque vai demorar um pouquinho porque eu não
conectei ainda a minha do Google colega aqui no dia não tinha colocado a máquina ainda vai demorar um pouquinho mais ele vai rodar E aí quando ele faz gente vai dar uma olhada outra coisa vamos dar uma olhada na página a gente vai fazer o scrap né Já deixei ela aberta aqui então essa página é uma uma parte aqui é top com pilhas grandes Ou seja é a Stop linguagem programação mais usado aberto aqui então essa página aqui cheia de ela tem vários várias propaganda aqui enfim mas ela fala dessas top com peso em 2
dias aqui apresenta um texto inicialmente Depois tem umas tabelas aqui em baixo tá o gráfico enfim tabela mostrando qual é a gente vai esperar e nada Qual é o certo Trends enfim é posição né então a gente tem essa informação aqui a respeito e eu quero por exemplo coletar essa tabela que eu quero que a sua mais com a tabela do meu sistema Como que eu faço eu tenho que fazer um scrap aqui nessa página é isso que a gente vai fazer Bom vamos lá então como que eu faço isso a primeira coisa pessoal né
é usar aqui ó eu vou fazer Siri quests eu vou fazer um jet que que é sempre quests faz eu coloco o nome da página aqui é um final que tenho contente aqui tem que vai fazer um único Essa É como se eu digitar society e mandasse bater lá ele fosse trazer como se fosse uma página para mim e essa variável que eu chamei de HTML e ela vai conter o que ela vai conter justamente né essa página que eu estou recebendo Além disso na sequência que que eu faço eu uso aqui essa mesma variável
que foi gerada aqui né ela vai ter essa variável aqui ó eu vou passar um par se a dor de HTML 5 né e vou gerar pelo beautiful soup eu vou gerar essa variável suco Então vamos fazer isso aqui que que eu tô fazendo nesse momento eu mandei bateu lá na página trazer os dados joguei isso uma variável comigo para o super vamos continuar agora o entendimento dessa variada atendimento da biblioteca como que vai funcionar tão aqui primeira coisa ó eu chamei o amarelo de primeiro parágrafo porque eu quero pegar o primeiro parágrafo aqui vai
depender um pouco da compreensão de vocês a respeito Oi Daniele porque na verdade que a gente tá fazendo então Quais são as tags HTML a tag P por exemplo é uma tag de parada então o que que na verdade eu tô fazendo eu tenho apego a página que jogado na variável subir que que eu vou fazer agora eu vou mandar na variável subir mandar procurar a tag P ele vai procurar minha primeira tag p e vai jogar aqui nessa variável primeiro parágrafo tá entregar procurar lá no site o primeiro parágrafo do site onde tem a
tag P E aí eu vou mandar mostrar isso aqui vão executar e ele fez isso trouxe Olha só e trouxe exatamente o que eu queria tag P com o texto que tem dentro a olhar no site ver se é isso mesmo Olha só lá no meu site primeiro parágrafo que eu tenho Ó você a mais largamente utilizada é linguagem programação o cara ele tá aqui ó esse é meu primeiro parágrafo a gente for olhar aqui olha só é isso você né então trouxe exatamente o primeiro parágrafo que legal mas eu não quero a as tags
eu quero só o texto que tá dentro ou pintam é essa variável. Teste e ele vai mostrar no de executar ele vai mandar mostrar só o texto Então vai tirar o pé aqui né da mostrar só o texto da lei que legal agora se eu quisesse buscar todos os parágrafos aí vez de fazer um find que foi como eu fiz aqui em cima eu ia fazer um symdiol e vai buscar todos os parados olhando a gente tem várias parágrafo só várias paradas certo então vamos ver como é que faz isso eu vou mandar um saem
de aula que tem vai fazer como são vários parágrafos pessoal vai fazer o que o pai que normalmente faz muitas informações vai montar uma lista com os parágrafos vamos ver como é que é vai mandar buscar jogar essa variável todos os parágrafos mandar imprimir ela aqui para gente ver o que a gente resultado ó tá vendo que é uma lista aqui ó começa com um colchete aqui do que que ele vai ter o primeiro parágrafo tá aqui ó depois do segundo parágrafo tá aqui onde tá o meu pé e assim sucessivamente ou seja ele buscou
todos os parágrafos né E alinhou numa lista a gente for olhar aqui embaixo aí eu quero imprimir o parágrafo zero uma lista a posição zero para imprimir E ai que legal eu tô super parado a mesma coisa tinha feito aquela hora na primeira vez eu peguei só um parágrafo agora que eu fiz Peguei todos jogando uma lista e tô entendendo primeiro Ah mas eu quero imprimir Não primeiro que imprimir o segundo e pega posição vai jogar o A vamos para outra posição posição 2 e ele vai pegando parágrafo por parágrafo e assim sucessivamente A então
Ele montou uma lista isso é muito importante compreender find All buscar tudo que tem calda numa lista só find them sua busca o primeiro que ele achar trabalho bom agora vamo pegar link Olha que legal então em vez de a gente pegar parágrafo que é que a gente usou a tag p&d vai usar buscar link tem já buscar a tag a vó eu vou mandar vou criar uma variável todos os links ele vai trazer todos os links que ele tem lá ela tem muitos links né ela tem gente aqui tem link aqui 500 mesmo os
links se encontrar aqui ele vai trazer vamos lá então ver que que ele vai trazer d-link eu vou mandar rodar ele vai mandar o sub find All vai mandar buscar a tag ar e vai mandar imprimir na sequência todos os links aqui tá imprimindo essa aqui ali trouxe a todos os primeiro link é isso aqui certo depois ele traz um outro aqui quero Word Índia são todos os links que ele tem né todos aqueles primeiros que tiveram na página são esses aqui é o mas tem outros aula no começo que são os menos tal todo
aquele tipo de coisa então todos os links que ele tem estão listados aqui se quiser imprimir qualquer um deles é a mesma coisa que eu fiz no palavra joia bom vamo inspecionar agora aquela tabela que a gente quer pegar é importante a gente saber isso né para você conseguir fazer scrap tem que dominar um pouquinho de HTML e saber como é que a gente usa os recursos então por exemplo a tabela que eu quero pegar é essa daqui ó como que eu faço para saber né então uma das coisas que a gente faz aqui é
inspecionar não é só vou espessionar E aí e vai abrir inspeção aqui ver se eu consigo aumentar um pouquinho essa letra aqui para ficar mais caro para vocês a beleza vamos pressionar E aí eu vou mandar inspecionar e eu quero pegar aquela tabela lá que essa daqui ó quando eu busco essa tabela pessoal quando eu vou fazer essa expressão aqui buscar essa tabela tá ele vai aparecer aqui eu vou ter a lista aqui das informações e vocês aqui olha só eu tenho as informações dessa tabela aqui ó e eu tenho que saber qual é as
tags que montam essa tabela aqui então eu vou encontrar no meu recurso no recurso que eu tenho aqui né Aonde que tá esse tempo e tá aqui ó nos ver claro que eu coloco o mouse é que ele tá me selecionando tebo do lado esquerdo e eu sei que esse tem essa tempo aqui ela tem uma editable é de um você já tem um nome só um recurso do HTML então sabendo disso que vai buscar as essa informação Então é só que a gente vai fazer vem aqui né aqui já um pouquinho mais complexo do
que eu estava fazendo até então eu vou dar um find eu vou buscar com a tag tabela só que aqui ó eu vou dizer que eu tenho um Eyed table aí de um que é justamente pegar a tabela com esse nome e lá dentro Eu vou fazer um find de novo buscando tempo ore por que ter Bora porque eu percebi aqui ó que dentro do tebori é aonde tem informação que eu quero tá aqui ó que são as linhas e as colunas o pai tão 29 depois a linguagem Java 17 depois e assim sucessivamente então
eu percebi que tá dentro desse termo olha aqui por isso que eu vou pegar mandei procurar primeiro table tem boy de um e mandei procurar ter Bora e quando ele faz isso ele encontra e eu vou gerar uma tabela aqui então Vamos ver que que ele gerou vamos executar e olha só que aquele buscou exatamente que tava lá de Bori aí tem os TRT de tem como o desenho HTML e aqui eu vou ter pai tão Java Java script com os valores bonitinho tal separando TRC para cada linha te de cada coluna né então aqui
precisa da compreensão da katembe aí para ver o que a gente tá fazendo o quê que eu vou fazer aqui eu vou querer pegar na tabela que eu acabei de buscar na variável tabela eu vou procurar todos os TRS vocês aqui quem está fazendo nessa linha aqui ó eu vou criar uma variável linhas onde cada linha que eu tenho é uma linha da minha tabela cada uma Então esse find All faz isso e depois eu vou fazer um four para percorrer essa minha variável linhas linha linha então vou fazer um forte aonde eu vou pegar
a primeira linha e aí lá dentro vai para cada vez que eu percorreu uma linha eu vou procurar o meu find the Wall e eu vou tirar uma variável que eu chamo de dado perceba eu tenho uma tabela dentro da tabela eu queria uma variável linhas tem todas as linhas e para cada língua fazer um forte e para cada linha eu voltei hostiles né ou seja voltei meus dados separadinhos então para cada célula da minha tabela para cada te dei para cada célula eu vou gerar né Essa variável dado dado vai ter o primeiro essa
água segunda saiu a terceira célula quartas ela depois a mesma coisa e eu mando imprimir assinado da do zero. Texto dado dois. Texto dado 3.3 porque da do zero dado dois dado três porque eu quero buscar as informações que eu quero buscar eu podia mostrar todo podia mostrar todas mas eu quero buscar o 0 eo 2 ou 3 que são as posições na tabela que eu quero mostrar uma das executar isso aqui olha só ele fez aqui buscou as linhas para cada linha agora vai pegar os dados da mostrar aqui ele vai mostrando ó as
variáveis mostrou posição 1 em 29 ago 93 posição 2 Java 17,78 e assim sucessivamente ou seja imprimir isso né não continuar lendo aqui que possível fazer eu imprimi mas eu poderia por exemplo em vez de imprimir eu poderia montar os lugares uma variável Então eu queria uma uma variável aqui chamada linguagem né que é uma lista e uma variável chamada pontos é a porcentagem de pontos lá e vou fazer a mesma coisa que eu já tinha buscado as linhas vou mandar percorrer de novo só que invés de ao e imprimir cada vez que eu pegar
um dado eu vou pegar e vou fazer um atende aqui ó na minha lista eu tenho uma variável linguagem cada vez que passar eu pego o valor e joga na variável vou na próxima pega o valor joga na variar faça a mesma coisa tanto para linguagem outro para quantidade de pontos a porcentagem que ela fez vou correr a lista vou ter o que vou criar duas listas uma de linguagem uma de pontos que são os valores que eu tenho ali a hora que a gente manda executar isso aqui eu criei as variáveis tá então Executor
Ele criou as variações ver como é que ele vai ficar primeiro a linguagem depois a de pontos da linguagem Olha só pai tão Java Java scripts echarpes e mais mais 29 17 8 Ele criou aqui minhas duas listas bonitinho é mesma coisa que eu tenho aula exatamente o que eu tenho lá e para as pessoas aqui me atende que eu tenho lá na meta dela tu pegando esse valor e esse aqui no que eu peguei 10 aqui agora zera que depois um ar isso aqui o dois é aqui o 3 aí só quero pegar o
quarto pegar esse aqui escolheu pegar essa informação agora vamos dar um data frente já querer fazer isso Data Frame com linguagem avariado linguagem vai servir como linguagem então criar um Data Frame aqui vou adicionar número do telefone mais uma coluna que são os pontos a e agora a gente vai ter os dados que é exatamente a mesma tabela que a gente tem lá no site ou seja a gente criou um Data Frame a partir né dos dados que eu tinha no site não tava pintado estruturar Dinho nada que a gente fez a gente foi lá
e buscou essa informação isso aqui demanda um pouco de conhecimento de html você não consegue fazer os crepes se você não conhecer essa parte que eu fiz de inspecionar buscar um uma tag identificar se ela tem um Eyed colocar informação para verificar te guarde buscar aquele recurso esse é um trabalho muito de minerador minhas mineração sei lá olhar a fazer tal essa técnica por isso que eu falo essa técnica não é sempre muito bem-vinda né você resolve alguns problemas com isso mas é muito mais fácil você buscar dados de um banco de dados de uma
planilha enfim do que fazer o esperto mas funciona muito bem é para alguns recursos é muito legal fazer os créditos vamos voltar lá e para nossa é para o site voltando para o slide então é em muitos projetos data Science que só pode ocorrer parte da captação de dados de scrap vocês viram ali por exemplo né eu mostrei dados do dólar pois você tem um monte de dados que está coletando de informação do banco de dados da empresa de conhecimento do hora do dia e se faz um scrap que vai lá e cá pulo esse
valor esse gera né É assim que coloca essa informação dentro do seu o seu banco de dados e coleta todo dia e vai armazenado no banco de dados dá para fazer todas essas coisas né realizar o scrap é uma tarefa que tem o resultado imediato no que se propõe aí quanto mais o desenvolvedor conhecer o conteúdo a ser coletado mais rica experiência além de mais eficaz quanto mais você dominar Esse espessionar aí que a gente vai indo no HTML buscando as informações identificando fazendo teste melhor você vai vai ficar para fazer esse tipo de busca
abusem muito do uso do grupo super Por quê Por quê o tipo de biblioteca que oferece muitos recursos eu mostrei pra vocês aqui o caminho por onde a gente vai né Mas é para fazer muita coisa se propõe a fazer isso alguma daqueles que daqui as imagens que eu mostrei um site tem fácil que era buscar essa informação Vamos tentar buscar quero buscar todos os links tem que ter medo site Vamos tentar buscar tenta buscar informação e montar isso outra coisa procure experimentar outras bibliotecas como Selene os conhecem por exemplo ela também são bem legais
para fazer e ela tem funcionalidade as vezes que foi o que você precisa vai te ajudar mais do que o grifo sou Então depende da biblioteca né alguns recursos são mais específicos bom Espero que tenham gostado a gente se vê na próxima aula até mais é [Música]
Copyright © 2024. Made with ♥ in London by YTScribe.com