A World Wide Web é a fonte abrangente e definitiva de todos os dados que existe. O rápido desenvolvimento que a Internet viu nas últimas três décadas foi sem precedentes. Como resultado, a Web está sendo montada com centenas de terabytes de dados a cada dia de passagem.
Todos esses dados têm algum valor para um certo alguém. Por exemplo, seu histórico de navegação tem significado para aplicativos de mídia social, pois eles o usam para personalizar os anúncios que eles mostram. E também há muita concorrência por esses dados; Alguns MBs 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 no raspagem de dados, preparamos este guia no qual mostraremos como raspar dados da web usando o Python e a bela biblioteca de sopa.
Estamos assumindo que você já tem familiaridade intermediária com Python e HTML, pois estará trabalhando com os dois seguindo as instruções deste guia.
Seja cauteloso sobre quais sites você está tentando suas habilidades de mineração de dados novas, 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: Biblioteca de solicitações de Python para carregar o conteúdo das páginas da web e a bela biblioteca de sopa para o bit de raspagem real do processo. Existem alternativas ao BeautifulSoup, lembre -se e se você estiver familiarizado com qualquer um dos seguintes, sinta -se à vontade para usá -los: Scrappy, Mecanize, Selenium, Portia, Kimono e Parsehub.
A biblioteca de solicitações pode ser baixada e instalada com o comando pip como em:
# pip3 Instale solicitaçõesA biblioteca de solicitações deve ser instalada no seu dispositivo. Da mesma forma, faça o download do BeautifulSoup também:
# pip3 Install BeautifulSoup4Com isso, nossas bibliotecas estão prontas para alguma ação.
Como mencionado acima, a biblioteca de solicitações não tem muito uso além de buscar o conteúdo das páginas da web. As bibliotecas e as solicitações de BongeSoup têm um lugar em todos os scripts que você escreverá, e elas precisam ser importadas antes de cada uma das seguintes:
$ solicitações de importaçãoIsso adiciona a palavra -chave solicitada ao espaço de nome, sinalizando para python o significado da palavra -chave sempre que seu uso é solicitado. O mesmo acontece com a palavra -chave BS, embora aqui tenhamos o benefício de atribuir uma palavra -chave mais simples para o belo grupo.
Página da web = solicitações.Get (URL)O código acima busca o URL da página da web e cria uma string direta, armazenando -a 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 da Web variável.
Com isso, terminamos com a biblioteca de solicitações. Tudo o que resta a fazer é mudar as opções da biblioteca de solicitações em opções de belo grupo.
$ htmlContent = BS (WebContent, “HTML.analisador “)Isso analisa o objeto de solicitação e o transforma em objetos html legíveis.
Com isso tudo resolvido, podemos passar para a parte real.
Raspando a web com python e belo grupo
Vamos seguir em frente e ver como podemos raspar objetos html de dados com belaspoup.
Para ilustrar um exemplo, enquanto explicamos as coisas, trabalharemos com este snippet html:
Podemos acessar o conteúdo deste snippet com o BeautifulSoup e usá -lo na variável de conteúdo HTML como em:
O código acima procura qualquer tags nomeado e mostra ao usuário. Se encontrar mais de uma tags, mostra uma de cada vez:
Para salvar simultaneamente as tags nomeadas em uma lista, emitiríamos o código final como em:
A saída deve retornar assim:
Para convocar uma das tags, indexe a lista e pegue a que você deseja.
Agora vamos ver como escolher tags mantendo em perspectiva suas características. Para separar A, precisamos das tags com o atributo "Tech_head". Digite o seguinte código:
para div na sopa.find_all ('div', atts = 'class' = 'Tech_head'):
Isso busca a tag.
Você receberia:
Tecnologia
Tudo sem tags.
Por fim, abordaremos 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.encontre ("img") ["src"]E a saída seria como:
"Xyzlady.jpg "Oh garoto, isso com certeza é muito trabalho!
Se você sente sua familiaridade com Python ou HTML é inadequada ou se você está simplesmente sobrecarregado com a raspagem da web, não se preocupe.
Se você é um negócio que precisa adquirir um tipo específico de dados regularmente, mas não pode fazer a eliminação da web, existem maneiras de contornar esse problema. Mas saiba que isso vai custar algum dinheiro para você. Você pode encontrar alguém para fazer a raspagem para você, ou pode obter o serviço de dados premium de sites como Google e Twitter para compartilhar os dados com você. Essas partes compartilham seus dados empregando APIs, mas essas chamadas de API são limitadas por dia. Além disso, sites como esses podem ser muito protetores de seus dados. Normalmente muitos desses sites não compartilham nenhum de seus dados.
Pensamentos finais
Antes de encerrarmos, deixe-me contar em voz alta se ainda não foi evidente; Os comandos find (), find_all () são seus melhores amigos quando você está raspando com o belo grupo. Embora haja muito mais para cobrir para dominar dados de dados com Python, este guia deve ser suficiente para aqueles que estão apenas começando.