A rede mundial de computadores é a fonte definitiva e abrangente de todos os dados que existe. O rápido desenvolvimento que a Internet viu nas últimas três décadas não tem precedentes. Como resultado, a web está sendo montada com centenas de terabytes de dados a cada dia que passa.
Todos esses dados têm algum valor para uma determinada pessoa. Por exemplo, seu histórico de navegação é significativo para aplicativos de mídia social, pois eles o usam para personalizar os anúncios que mostram a você. E também há muita competição por esses dados; alguns MBs a mais de alguns dados podem dar às empresas uma vantagem substancial sobre a concorrência.
Mineração de dados com Python
Para ajudar aqueles de vocês que são novos em coleta de dados, preparamos este guia no qual mostraremos como coletar dados da web usando Python e a biblioteca de sopa Beautiful.
Presumimos que você já tenha familiaridade intermediária com Python e HTML, pois trabalhará com ambos seguindo as instruções neste guia.
Tenha cuidado com os sites em que está testando suas novas habilidades de mineração de dados, pois muitos sites consideram isso intrusivo e sabem que pode haver repercussões.
Instalando e preparando as Bibliotecas
Agora, vamos usar duas bibliotecas que vamos usar: a biblioteca de solicitações do python para carregar conteúdo de páginas da web e a biblioteca Beautiful Soup para a parte de raspagem real do processo. Existem alternativas para BeautifulSoup, veja bem, e se você estiver familiarizado com qualquer um dos seguintes, sinta-se à vontade para usá-los: Scrappy, Mechanize, Selenium, Portia, kimono e ParseHub.
A biblioteca de solicitações pode ser baixada e instalada com o comando pip como em:
# pip3 solicitações de instalação
A biblioteca de pedidos deve ser instalada no seu dispositivo. Da mesma forma, baixe o BeautifulSoup também:
# pip3 install beautifulsoup4
Com isso, nossas bibliotecas estão prontas para alguma ação.
Conforme mencionado acima, a biblioteca de solicitações não tem muito uso além de buscar o conteúdo de páginas da web. A biblioteca BeautifulSoup e as bibliotecas de solicitações têm um lugar em cada script que você vai escrever e devem ser importadas antes de cada uma da seguinte maneira:
$ pedidos de importação$ from bs4 import BeautifulSoup como bs
Isso adiciona a palavra-chave solicitada ao namespace, sinalizando ao Python o significado da palavra-chave sempre que seu uso for solicitado. A mesma coisa acontece com a palavra-chave bs, embora aqui tenhamos a vantagem de atribuir uma palavra-chave mais simples para BeautifulSoup.
página da web = solicitações.obter (URL)O código acima busca o URL da página da web e cria uma string direta a partir dele, armazenando-o em uma variável.
$ webcontent = página da web.contenteO comando acima copia o conteúdo da página da web e os atribui ao conteúdo variável da web.
Com isso, terminamos com a biblioteca de solicitações. Tudo o que resta fazer é mudar as opções de solicitação da biblioteca para opções do BeautifulSoup.
$ htmlcontent = bs (webcontent, “html.analisador “)
Isso analisa o objeto de solicitação e o transforma em objetos HTML legíveis.
Com tudo isso cuidado, podemos passar para a parte de raspagem real.
Web scraping com Python e BeautifulSoup
Vamos prosseguir e ver como podemos procurar por objetos HTML de dados com o BeautifulSoup.
Para ilustrar um exemplo, enquanto explicamos as coisas, trabalharemos com este snippet html:
Podemos acessar o conteúdo deste snippet com BeautifulSoup e usá-lo na variável de conteúdo HTML como em:
O código acima procura por quaisquer tags nomeadas
Para salvar simultaneamente as tags nomeadas
a uma lista, emitiríamos o código final como em:
A saída deve retornar assim:
Para convocar um dos
Agora vamos ver como escolher
tags mantendo em perspectiva suas características. Para separar um , nós precisaríamos do
para div na sopa.find_all ('div', attrs = 'class' = 'Tech_head'):
Isso busca o
marcação.Você obteria:
Tecnologia
Tudo sem tags.
Por último, vamos cobrir como escolher o valor do atributo em uma tag. O código deve ter esta tag:
Para operar o valor associado ao atributo src, você usaria o seguinte:
htmlcontent.find (“img“) [“src“]E a saída seria:
"images_4 / a-beginners-guide-to-web-scraping-with-python-and-beautiful-soup.jpg "
Oh cara, isso com certeza dá muito trabalho!
Se você acha que sua familiaridade com python ou HTML é inadequada ou se você está simplesmente sobrecarregado com a web scraping, não se preocupe.
Se você tem uma empresa que precisa adquirir um tipo específico de dados regularmente, mas não pode fazer o scraping da web sozinho, existem maneiras de contornar esse problema. Mas saiba que isso vai te custar algum dinheiro. Você pode encontrar alguém para fazer a coleta para você ou pode obter o serviço de dados premium de sites como Google e Twitter para compartilhar os dados com você. Eles compartilham porções de seus dados empregando APIs, mas essas chamadas de API são limitadas por dia. Além disso, sites como esses podem proteger muito seus dados. Normalmente, muitos desses sites não compartilham nenhum dos seus dados.
Pensamentos finais
Antes de encerrarmos, deixe-me dizer em voz alta se ainda não foi evidente; os comandos find (), find_all () são seus melhores amigos quando você está lutando com BeautifulSoup. Embora haja muito mais a ser abordado na coleta de dados mestre com Python, este guia deve ser suficiente para aqueles que estão começando.