Como fazer web scraping python de maneira fácil e rápida

A necessidade e importância de extrair dados da web está se tornando cada vez mais importante. Cada vez mais me encontro em situações em que preciso extrair dados de um determinado site.

Por exemplo, quando eu uso SEO, conseguir links é muito importante. Mas como obter links naturalmente e em escala ao mesmo tempo? Para isso, preciso entrar em contato com centenas de sites sem perder tempo e uso a tecnologia Web Scraping para extrair e-mails que contenham os domínios dos sites aos quais desejo vincular.

Maneiras de extrair dados da web

Existem várias maneiras de extrair informações da web. Usar uma API é provavelmente a melhor maneira de extrair dados de um site. Quase todos os principais sites, como Twitter, Facebook, Google, Twitter e StackOverflow, fornecem APIs para acessar seus dados de maneira mais estruturada.

Se você pode obter o que precisa por meio de uma API, esse é quase sempre o método preferido em vez de extrair dados diretamente da web. Porque se você estiver acessando dados estruturados diretamente de um provedor por meio de uma API, não faz sentido criar um mecanismo para extrair as mesmas informações.

O que é Web Scraping?

Web Scraping é uma técnica de programação que permite extrair informações de páginas da web (sites). A tecnologia se concentra principalmente na conversão de dados não estruturados (em formato HTML) da Web em dados estruturados (banco de dados, JSON ou planilha).

Você pode rastrear de várias maneiras, inclusive usando o Google Docs em quase qualquer linguagem de programação. Eu uso Python porque é fácil de usar e tem amplo suporte para qualquer coisa que você possa imaginar. Possui uma biblioteca chamada BeautifulSoup que pode ajudar nessa tarefa.

Para quem não é programador e deseja extrair informações de páginas da web, também pode escolher um site como o import.io. Ele fornece uma interface básica para realizar todas as operações básicas de web scraping.

Bibliotecas para a web scraping

Python é uma linguagem de programação de código aberto. Você pode encontrar muitas bibliotecas para executar uma função. Portanto, é necessário encontrar o melhor para fazer o que você precisa. Eu uso BeautifulSoup (biblioteca python) porque é fácil de usar e intuitivo. Resumindo, vou usar dois módulos Python para extrair os dados:

Urllib2: É um módulo Python que pode ser usado para obter URLs. Ele define funções e classes para ajudar na manipulação de URL (autenticação básica e compilada, redirecionamentos, cookies, etc.). Consulte a documentação para obter mais detalhes.
BeautifulSoup: Esta é uma ferramenta incrível para extrair informações de páginas da web. Você pode usá-lo para extrair tabelas, listas, parágrafos e também pode usar filtros para extrair, por exemplo, e-mails de páginas da web. Neste artigo, usaremos a versão mais recente do BeautifulSoup 4. Você pode ver as instruções de instalação em sua documentação.

BeautifulSoup não obtém o URL para nós. É por isso que eu uso urllib2 com a biblioteca BeautifulSoup.

O que preciso para fazer a raspagem da web em Python?

Para fazer o web scraping do Python, obviamente precisamos do Python, mais especificamente da versão 3.

Usaremos pip para baixar as bibliotecas que usaremos para web scraping Python, estas serão: Beautiful Soup, a biblioteca de solicitações e um editor de texto de sua escolha.

python 3
Você pode encontrar um instalador do Python baseado em seu sistema operacional.

apontar
pip será usado para instalar as bibliotecas que usaremos de forma rápida e fácil!

Exigir
Para instalar a biblioteca que usaremos para fazer requisições e requisições, que você pode instalar facilmente usando pip com:

No Linux:

solicitação de instalação

No Windows:

Você precisa executar o cmd como administrador e usar o comando .

Beautifulsoup

Por fim, instalaremos a biblioteca que usaremos para web scraping Python, que você pode instalar com:

No Linux:

No Windows:

Execute o prompt de comando como administrador e instale-o com o comando , se tudo der certo, ele retornará algo parecido com a imagem abaixo:

O que você pode fazer com web scraping Python?
Você pode fazer muito com o web crawler Python, neste artigo vou desenvolver um script bem simples que coleta dados e previsões do site Climatempo como exemplo prático.

Vamos processar esses dados e ver quais são as temperaturas mínimas e máximas na sua cidade, o que é muito simples e introdutório.

Conforme você aprende, você pode adicionar mais e mais dados a este script para completá-lo. Por exemplo, seria divertido ter tempo para executar um script periodicamente e obter dados todos os dias.

Depois de correr todos os dias durante um mês, podemos visualizar esses dados como: qual semana é mais chuvosa, qual semana é mais ensolarada, e então fazer um gráfico.

Também seria bom escrever um script em Python, um web crawler que rastreie os preços dos produtos à venda em um determinado dia, ou até mesmo obtenha os preços dos produtos X antes da Black Friday, e depois verifique seus preços novamente para ver os descontos .

Você pode fazer isso e muito mais com web scraping Python, uma combinação poderosa com infinitas possibilidades.

Crie um rastreador da Web do zero

É isso, instalamos tudo que precisamos, agora vamos criar um web crawler do zero usando Python.

Primeiro, crie um arquivo com seu nome preferido e extensão .py, abra-o com um editor de texto e cole o seguinte código:

Nestas linhas de código, importamos o BeautifulSoup e solicitamos bibliotecas nas duas primeiras linhas.

Na terceira, obtemos todo o conteúdo da solicitação get na url Weather Weather.

Na quarta e quinta linhas, um objeto chamado sopa é criado para interpretar o documento HTML.

Agora execute-o com python your-filename.py no terminal ou prompt de comando e podemos ver que ele retornará todo o HTML da página.

É difícil ler todo esse HTML até encontrarmos a informação que estamos procurando, e processaremos e filtraremos tudo isso até que o script retorne o que precisamos, que nesse caso serão as temperaturas máxima e mínima.

temperatura =

Adicione as duas últimas linhas ao final do arquivo e execute-o novamente.

Você verá que ele retornará a temperatura máxima e mínima, o que está acontecendo neste código é que, na primeira linha, estamos olhando para o objeto beautifulsoup definido acima, as temperaturas mínima e máxima, “span” é a tag html , e ” class_=” é a classe atribuída ao elemento.

Você pode visualizar classes e elementos pressionando Ctrl+Shift+C ou Command+Shift+C em uma página HTML e selecionando o elemento para pegar com o mouse.

Em seguida, ele abrirá um painel esquerdo ou direito com o elemento selecionado destacado, semelhante à imagem abaixo:

Após selecionar o texto que deseja pegar, basta encontrar o elemento por id, id ou class, se for por id você pode encontrar assim: soup.find(id=”link3”), na última linha do código I exibir este elemento HTML na tela O texto original, simples, certo?