Web Scraping com Python

Compartilhe!

Web Scraping com Python

Neste blog, vamos ler sobre web scraping e sua implementação usando a linguagem de programação Python.

Os usuários devem consultar nossos blogs anteriores sobre PNL para entender melhor os conceitos.

O web scraping é usado sempre que queremos extrair ou copiar grandes quantidades de informações de um site o mais rápido possível, sem ir manualmente a cada site para obter os dados.

A coleta da Web torna essa tarefa mais fácil e rápida.

Aplicações de Web Scraping

Web scraping pode ser usado por vários motivos, mas qual é a necessidade de coletar dados tão grandes de sites, vamos dar uma olhada:

  • Algumas empresas usam endereços de e-mail de usuários como meio de marketing. Portanto, eles usam web scraping para coletar ids de e-mail para que possam enviar e-mails em massa.
  • Às vezes, a web scraping é feita em sites de mídia social, como o Twitter, para coletar dados e descobrir o que é tendência. 
  • É feito para reunir os dados de diferentes sites de fóruns de revisão e implementar a análise de sentimento nos mesmos.
  • O web scraping também é feito para reunir dados para testar e treinar nossos modelos de aprendizado de máquina. Etc.

No entanto, existem alguns sites que impedem o web scraping. Para saber se um site permite web scraping ou não, tudo o que precisamos fazer é examinar o arquivo ‘robots.txt’ do site.

Precisamos apenas anexar → /robots.txt à URL que queremos extrair .

Como funciona o Web Scraping

Para isso, escolhemos uma URL na qual queremos realizar o scraping. Depois de executar o código, uma solicitação é enviada ao URL. O servidor envia os dados como uma solicitação e nos permite ler a página HTML / XML. 

O código então analisa a página, encontra os dados e os extrai.

Neste blog, encontraremos a frequência de palavras em uma página da web usando urllib e BeautifulSoup para extrair texto da página da web. Em seguida, removeremos as palavras irrelevantes dele e, em seguida, traçaremos o gráfico das mesmas.

Beautiful Soup é uma biblioteca Python para extrair dados de arquivos HTML e XML.

Vamos ver como fazer web scraping usando Python:

Começaremos importando todas as bibliotecas necessárias

from bs4 import BeautifulSoup
import urllib.request
import nltk
response = urllib.request.urlopen(‘http://php.net/’)
html = response.read()
soup = BeautifulSoup(html,”html5lib”)

O módulo urllib.request é usado para abrir URLs. O pacote Beautiful Soup é usado para extrair dados de arquivos HTML.

text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
freq = nltk.FreqDist(tokens)
for key,val in freq.items():
print (str(key) + ‘:’ + str(val))

‘soup.get_text’ é usado para obter o texto da página da web e ‘ nltk.FreqDist’ é usado para obter a frequência de cada item do vocabulário no texto.

Traçando o gráfico de frequênciafrequencia. plot ( 20 , cumulativo = False )

No gráfico acima, podemos ver que todas as palavras com suas frequências foram plotadas.

Agora, depois de buscar todas as palavras do site, nosso objetivo é remover as palavras irrelevantes delas. Podemos fazer isso usando a biblioteca ‘stopwords’ da nltk.

nltk.download(‘stopwords’)
from nltk.corpus import stopwords

Removeremos as palavras irrelevantes e imprimiremos todas as palavras com sua respectiva frequência.

text = soup.get_text(strip=True)
tokens = [t for t in text.split()]
clean_tokens = tokens[:]
sr = stopwords.words(‘english’)
for token in tokens:
if token in stopwords.words(‘english’):
clean_tokens.remove(token)
freq = nltk.FreqDist(clean_tokens)
for key,val in freq.items():
print (str(key) + ‘:’ + str(val))

Traçar o gráfico de frequência após remover as palavras irrelevantesfrequencia. plot ( 20 , cumulativo = False )

É assim que fazemos web scraping usando BeautifulSoup. Espero que tenha gostado deste blog. Para qualquer dúvida ou sugestão, deixe-nos um comentário.

Créditos: acadgild

Continue visitando nosso site para mais blogs sobre Ciência de Dados e Análise de Dados.

Compartilhe!